以科学计数法显示小数

以科学计数法显示小数

我该如何显示:

十进制('40800000000.00000000000000')为'4.08E + 10'?

我试过这个:

>>> '%E' % Decimal('40800000000.00000000000000')'4.080000E+10'

但它有额外的0。


临摹微笑
浏览 683回答 3
3回答

小怪兽爱吃肉

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'

天涯尽头无女友

以下是使用该format()函数的示例:>>> "{:.2E}".format(Decimal('40800000000.00000000000000'))'4.08E+10'

慕斯709654

鉴于你的号码x = Decimal('40800000000.00000000000000')从Python 3开始,'{:.2e}'.format(x)是推荐的方法。e意味着你需要科学记数法,并且.2意味着你想要点后2位数。所以你会得到x.xxE±n
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python