Lors de l'utilisation de l'instruction scanf, le caractère de format d'entrée de double est "%lf" et "%f" ne peut pas être utilisé ; lors de l'utilisation de l'instruction printf, vous pouvez utiliser "%f n'est pas". défini dans printf, mais il y en a beaucoup. Le système l'acceptera. Par conséquent, il est recommandé d'utiliser l'entrée "%lf" lors de l'utilisation du type double pour éviter les erreurs.
L'environnement d'exploitation de ce tutoriel : système Windows 7, version C++17, ordinateur Dell G3.
(1) Le spécificateur %f de printf peut générer à la fois des types float et double.
Selon la règle de "promotion des paramètres par défaut" (dans la liste des paramètres variables d'une fonction comme printf, cette règle s'applique indépendamment du fait qu'il y ait ou non un prototype dans la portée), le type float sera promu au type double. Donc printf() ne verra que les doubles.
(2) scanf doit utiliser %f pour le type float et %lf pour le type double. Pour scanf, la situation est complètement différente, il accepte les pointeurs, et il n'y a pas de promotion de type similaire ici.
Le stockage dans float (via un pointeur) est assez différent du stockage dans double. Par conséquent, scanf fait la distinction entre %f et %lf.
(3) En fait, %lf n'est pas défini dans printf, mais de nombreux systèmes peuvent l'accepter. Pour garantir la portabilité, respectez %f.
Il est recommandé, lors de l'utilisation du double type, d'utiliser l'entrée %lf et la sortie %f pour éviter les erreurs.
Tutoriel recommandé : "C#"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!