[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