https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81122
--- Comment #4 from Ben Woodard <woodard at redhat dot com> --- Without this Is there a way to read and write floats and doubles accurately without the rounding that converting to/from base 10 ends up introducing? How are you supposed to use istreams like printf(“%a”,dbl); scanf(“%f, &dbl); Note that scanf does handle doubles in whatever form they come in. Further note that according to stackexchange this works on llvm and other libstdc++ implementations. Therefore if the standard is unclear in this area maybe it is a topic to be clarified.