如何在Python中以科学记数法书写数字并保持尾数为整数

问题描述 投票:0回答:1

假设我有

x=3.141516
y=0.00129
。我需要用科学计数法格式化这些数字,但尾数不能有小数位。例如:

x = 3141516e-6
y = 129e-5

我不知道如何解决这个问题,因为 Python 中的格式看起来总是假定小数位。

python notation exponent
1个回答
0
投票

我不知道如何使用

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
© www.soinside.com 2019 - 2024. All rights reserved.