printf() Default Floating-Point Precision Is 6 Decimals

Retired KB Content Disclaimer

This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Summary

By default, the printf() function displays a floating-point number to six digits of precision. This default also holds for double precision numbers.


To display additional digits of precision, specify a value for the precision field in the printf() format specification, as follows:
%[<flags>][<width>][.<precision>]<type>

More Information

The code example below demonstrates documented printf() behavior that may appear to be a problem with the function.

   #include <stdio.h>

main()
{
double d = 1.2345678912;

printf("%e\n", d);
printf("%le\n", d);
}
This code example produces the following output:



1.234568e+000
1.234568e+000
To display the value d to its full precision, modify the code example to use the following statement:
   printf("%.15le", d);
Properties

Article ID: 29557 - Last Review: Dec 11, 2003 - Revision: 1

Feedback