我该如何显示:
十进制(‘40800000000.00000000000000’)为‘4.08E + 10’?
我已经试过了:
>>> '%E' % Decimal('40800000000.00000000000000') '4.080000E+10'
但是它有那些额外的0。
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'