为了账号安全,请及时绑定邮箱和手机立即绑定

以科学计数法显示小数

以科学计数法显示小数

临摹微笑 2019-08-27 13:47:26
以科学计数法显示小数我该如何显示:十进制('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'


查看完整回答
反对 回复 2019-08-27
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

以下是使用该format()函数的示例:

>>> "{:.2E}".format(Decimal('40800000000.00000000000000'))'4.08E+10'


查看完整回答
反对 回复 2019-08-27
?
慕斯709654

TA贡献1840条经验 获得超5个赞

鉴于你的号码

x = Decimal('40800000000.00000000000000')

从Python 3开始,

'{:.2e}'.format(x)

是推荐的方法。

e意味着你需要科学记数法,并且.2意味着你想要点后2位数。所以你会得到x.xxE±n


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 682 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信