Reputation: 13
Suppose I have x=3.141516
and y=0.00129
. I need to format those numbers in scientific notation but the mantissa must not have decimal places. For example:
x = 3141516e-6
y = 129e-5
I have no idea how to solve this, since formatting in Python looks always assume decimal places.
Upvotes: 0
Views: 316
Reputation: 195408
I'm not aware how you can do it with str.format
(to not have any decimal places), but you can construct the string manually (with help of decimal
module):
import decimal
def get_num(x):
t = decimal.Decimal(str(x)).as_tuple()
return f'{"-" if t.sign else ""}{"".join(map(str, t.digits))}e{t.exponent}'
print(get_num(3.141516))
print(get_num(0.00129))
print(get_num(-1.23))
Prints:
3141516e-6
129e-5
-123e-2
Upvotes: 1