Use fixed exponent in scientific notation Use fixed exponent in scientific notation python python

Use fixed exponent in scientific notation


Format it yourself (see Format Specification Mini-Language):

for ix in [.02e9, .2e9, 2e9, 20e9, 200e9, 2000e9]:    print('{:.3e} => {:0=8.3f}e9'.format(ix, ix / 1e9))

Output

2.000e+07 => 0000.020e92.000e+08 => 0000.200e92.000e+09 => 0002.000e92.000e+10 => 0020.000e92.000e+11 => 0200.000e92.000e+12 => 2000.000e9

Explanation

{:0=8.3f} means "zero-pad, pad between the sign and the number, total field width 8, 3 places after the decimal, fixed point format".


Ah well, got it:

for ix in [0.02, 0.2, 2, 20, 200, 2000]:  iss=str(ix) + "e9"  isf=float(iss)  isf2=isf/float("1e9")  isf2s = ("%04.03f" % isf2) + "e9"  print(iss + "\t=> " + ("%04.03e" % isf ) + " (" + str(isf) + ")" + " -> " + isf2s )

... gives:

0.02e9  => 2.000e+07 (20000000.0) -> 0.020e90.2e9   => 2.000e+08 (200000000.0) -> 0.200e92e9 => 2.000e+09 (2000000000.0) -> 2.000e920e9    => 2.000e+10 (20000000000.0) -> 20.000e9200e9   => 2.000e+11 (2e+11) -> 200.000e92000e9  => 2.000e+12 (2e+12) -> 2000.000e9

Sorry for posting,
Cheers!


For anyone still coming across this years later...

You can use python's Decimal with quantize

https://docs.python.org/3.6/library/decimal.html#decimal.Decimal.quantize