假设我有
x=3.141516
和 y=0.00129
。我需要用科学计数法格式化这些数字,但尾数不能有小数位。例如:
x = 3141516e-6
y = 129e-5
我不知道如何解决这个问题,因为 Python 中的格式看起来总是假定小数位。
我不知道如何使用
str.format
来做到这一点(没有任何小数位),但您可以手动构造字符串(在 decimal
模块的帮助下):
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))
打印:
3141516e-6
129e-5
-123e-2