mantissa and exponent in base 10
C or L Smith
smiles at worksmail.net
Thu Oct 7 11:51:55 EDT 2010
I just sent a similar suggestion to tutor: check out the %g format.
>>> print '%g' % 1.2345e7
1.2345e+07
>>> print '%g' % 1.2345e-7
1.2345e-07
>>> print '%g' % 1.2345
1.2345
>>> def me(n, sigfigs = 4):
... s = ('%.'+'%ig' % sigfigs) % n # check docs for a better way?
... if 'e' in s: m, e = s.split('e')
... else: m, e = s, 0
... m, e = float(m), float(e)
... if m >= 10:
... m /= 100
... e += 2
... elif m >= 1:
... m /= 10
... e += 1
... return m, e
...
>>> me(9.9999999)
(0.10000000000000001, 2.0)
>>> me(12345)
(0.12350000000000001, 5.0)
>>> me(1.2345e-9)
(0.12350000000000001, -8.0)
>>> me(1.2345e-9, 2)
(0.12, -8.0)
Best regards,
Chris Smith
More information about the Python-list
mailing list