On Mon, 17 Apr 2006, Alan Gauld wrote: > >>>> a = 123456.78 > >>>> print "%g\n%e\n%f" % (a,a,a) > > 123457 > > 1.234568e+005 > > 123456.780000 > > >Float number loses digits and becomes integer in the output ? > > Yep, I am rapidly coming to the comnclusion that %g is broken > in Python. I must do some tests with gcc to see what it does > with %g, it may be the wierd behaviour is coming from there. > I've never used %g with gcc...
FWIW, (Cygwin) Perl gives a similar result: > perl -e 'my $a = 123456.78;printf ("%g\n%e\n%f", $a, $a, $a);' 123457 1.234568e+05 123456.780000 The only difference being the two-digit vs. three-digit exponent on %e (Python's 1.234568e+005 vs. Perl's 1.234568e+05). Hmm.. Upon further review, Cygwin Perl gives 1.234568e+05; while Activestate Perl gives 1.234568e+005. (For reasons that elude me, Activestate Perl won't do the command-line version, but I don't care enough to track it down.) _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor