On Sep 7, 6:08 am, [EMAIL PROTECTED] wrote: > Hi, > > For compatibility reasons with an old program I have to format string > in exponential > format with the following format > > 0.xxxxxE-yy > > This means that the number start always by 0 and after the exponent > there should be alway the sing and 2 number for the exponent. > > for example 13 shoud be 0.13000E+02 > I always get 1.30000E001 >
Perhaps it would then be worthwhile to subclass float? import math class ffloat(float): """Formatted float?""" def __str__(self): prefix = (self < 0) and '-' or '' fabs = math.fabs(self) exponent = math.floor(math.log10(fabs)) + 1 significand = fabs / math.pow(10, exponent) width = exponent > 0 and 2 or 3 return '%s%fE%0*d' % (prefix,significand,width,exponent) f = ffloat(13) print f f = ffloat(-12.23e-4) print f -- Hope this helps, Steven -- http://mail.python.org/mailman/listinfo/python-list