以科学计数法显示小数我该如何显示:十进制('40800000000.00000000000000')为'4.08E + 10'?我试过这个:>>> '%E' % Decimal('40800000000.00000000000000')'4.080000E+10'但它有额外的0。
3 回答
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
from decimal import Decimal
'%.2E' % Decimal('40800000000.00000000000000')
# returns '4.08E+10'
在'40800000000.00000000000000'中,有许多更重要的零与任何其他数字具有相同的含义。这就是为什么你必须明确告诉你想要停止的地方。
如果要自动删除所有尾随零,可以尝试:
def format_e(n):
a = '%E' % n
return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1]
format_e(Decimal('40800000000.00000000000000'))
# '4.08E+10'
format_e(Decimal('40000000000.00000000000000'))
# '4E+10'
format_e(Decimal('40812300000.00000000000000'))
# '4.08123E+10'
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
以下是使用该format()
函数的示例:
>>> "{:.2E}".format(Decimal('40800000000.00000000000000'))'4.08E+10'
慕斯709654
TA贡献1840条经验 获得超5个赞
鉴于你的号码
x = Decimal('40800000000.00000000000000')
从Python 3开始,
'{:.2e}'.format(x)
是推荐的方法。
e
意味着你需要科学记数法,并且.2
意味着你想要点后2位数。所以你会得到x.xxE±n
添加回答
举报
0/150
提交
取消