Depuis 99, la correspondance entre les spécificateurs de format et les types d'arguments en virgule flottante en C est cohérente entre printf
y scanf
. Il est
-
%f
para float
-
%lf
para double
-
%Lf
para long double
Il se trouve que lorsque les arguments de type float
sont passés en tant que paramètres variadiques, ces arguments sont implicitement convertis au type double
. C'est la raison pour laquelle dans printf
spécificateurs de format %f
y %lf
sont équivalents et interchangeables. Dans printf
vous pouvez faire une "utilisation croisée" %lf
con float
o %f
con double
.
Mais il n'y a aucune raison de le faire en pratique. N'utilisez pas %f
a printf
arguments de type double
. C'est une habitude répandue, née à l'époque de C89/90, mais c'est une mauvaise habitude. Utilisez %lf
en printf
para double
et garder %f
réservé pour float
arguments.