Correct format specifier for double in printf - Stack Overflow 20 Format %lf is a perfectly correct printf format for double, exactly as you used it There's nothing wrong with your code Format %lf in printf was not supported in old (pre-C99) versions of C language, which created superficial "inconsistency" between format specifiers for double in printf and scanf
c - Why does scanf () need %lf for doubles, when printf () is okay . . . %f for float %lf for double %Lf for long double It just so happens that when arguments of type float are passed as variadic parameters, such arguments are implicitly converted to type double This is the reason why in printf format specifiers %f and %lf are equivalent and interchangeable In printf you can "cross-use" %lf with float or %f with
c - Meaning of %lf place holder - Stack Overflow Here is my small program where I intently put the place holder %lf in the second printf Why the second printf has the same result as the first printf( both printf 1 3) int main() { double f