擅长:python、mysql、java
<pre><code>from decimal import Decimal
'%.2E' % Decimal('40800000000.00000000000000')
# returns '4.08E+10'
</code></pre>
<p>在你的“4080000000000.00000000000000”中,还有许多更有效的零,它们的含义与任何其他数字相同。这就是为什么你必须明确地说出你想停在哪里。</p>
<p>如果要自动删除所有尾随零,可以尝试:</p>
<pre><code>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'
</code></pre>