>Martin Sebor wrote: > >Yes, although it's not immediately obvious to me what the problem >is, The first assertion above corresponds to this line: > > TEST (T, 1.1, 0, 0, 0, ' ', "", "%g"); > >I don't see where the test ends up formatting 1.1 as 1.1 using the >"%g" directive (on AIX, printf("%g", 1.1) produces 1 as expected. >
Uh, it most certainly does not. $ cat t.cpp #include <stdio.h> int main (int argc, char* argv []) { const float f = 1 < argc ? atof (argv [1]) : 1.1; printf ("%g\n", f); printf ("%.0g\n", f); // should be same as %.1g printf ("%.1g\n", f); printf ("%.2g\n", f); printf ("%.3g\n", f); printf ("%.4g\n", f); printf ("%.5g\n", f); printf ("%.6g\n", f); printf ("%.7g\n", f); printf ("%.8g\n", f); printf ("%.9g\n", f); return 0; } $ xlC t.cpp && a.out 1.1 1.1 1 1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.10000002 Travis >Martin >