[Bug libstdc++/49048] setprecision rounding fails in some cases
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu May 19 06:51:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49048
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-19 06:08:50 UTC ---
printf in glibc rounds, I think you should read something about rounding.
The default rounding mode (and the only one actually implemented for printf) is
round to even. http://www.lmgtfy.com/?q=round+to+even
So
#include <stdio.h>
int
main (void)
{
printf ("%.2f\n", 5798.12500);
printf ("%.2f\n", 5798.87500);
return 0;
}
printing
5798.12
5798.88
is correct.
More information about the Gcc-bugs
mailing list