http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47567
--- Comment #4 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> 2011-02-05 02:10:39 UTC --- With: print "(F0.0)", 0.001 ! => 0. print "(F0.0)", 0.01 ! => 0. print "(F0.0)", 0.1 ! => 0. print "(F1.0)", -0.0 ! => 0 print "(F1.0)", 0.001 ! => * print "(F1.0)", 0.01 ! => * print "(F1.0)", 0.1 ! => * print "(F2.0)", -0.001! => ** print "(F2.0)", -0.01 ! => ** print "(F2.0)", -0.1 ! => ** print "(F0.0)", 0.0 ! => 0 print "(F0.1)", 0.0 ! => .0 print "(F0.2)", 0.0 ! => .00 print "(F0.3)", 0.0 ! => .000 print "(F0.4)", 0.0 ! => .0000 print "(F2.0)", 0.0 ! => 0. print "(F2.0)", 0.001 ! => 0. print "(F2.0)", 0.01 ! => 0. print "(F2.0)", 0.1 ! => 0. end I currently get, as patched: $ ./a.out 0. 0. 0. 0 * * * ** ** ** 0 .0 .00 .000 .0000 0. 0. 0. 0. Looks reasonable to me. Any other opinions?