[Tutor] Meaning of %g ?

Terry Carroll carroll at tjc.com
Mon Apr 17 20:35:13 CEST 2006


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.)



More information about the Tutor mailing list