擅长:python、mysql、java
<p>简单的<code>rstrip("0")</code>不能很好地处理小值和某些其他值,它应该在小数点-<code>0.0</code>后保留一个零,而不是<code>0.</code>:</p>
<pre><code>def format_float(value, precision=-1):
if precision < 0:
f = "%f" % value
else:
f = "%.*f" % (precision, value)
p = f.partition(".")
s = "".join((p[0], p[1], p[2][0], p[2][1:].rstrip("0")))
return s
print(format_float(3e-10))
print(format_float(3e-10, 20))
print(format_float(1.5e-6))
print(format_float(1.5e+6))
</code></pre>