<p><strong>回答您的问题:</strong></p>
<p>只需使用float表示类型<code>'{:g}'</code>,而不是{<cd2>},如<a href="https://docs.python.org/3/library/string.html#formatspec" rel="nofollow noreferrer">Format Specification Mini-Language</a>所述。这将自动丢弃尾随的零。另外,如果需要的话,它会转换成指数表示法。在</p>
<pre><code>def formatter(value):
return "{:^14.8g}".format(value)
l = [100, 100.01, 3.1232342341312323434,
0.000000000000123, 1234567899.999]
for x in l:
print(formatter(x))
</code></pre>
<p>输出:</p>
^{pr2}$
<hr/>
<p><strong>格式化程序函数的一些可能有用的扩展</strong></p>
<p>稍微更改格式化程序函数,以便在调用时设置打印字段的精度和宽度:</p>
<pre><code>def formatter(value, precision, width):
return "{{:^{}.{}g}}".format(width, precision).format(value)
l = [100, 100.01, 3.1232342341312323434,
0.000000000000123, 1234567899.999]
for x in l:
print(formatter(x, 5, 20))
</code></pre>
<p>输出:</p>
<pre><code> 100
100.01
3.1232
1.23e-13
1.2346e+09
</code></pre>
<p>我在这个页面上找到了关于<a href="https://blog.henryhhammond.com/pandas-formatting-snippets/" rel="nofollow noreferrer">Pandas Formatting Snippets</a>的嵌套format()函数</p>