如何格式化浮点数,使其不包含尾随零?换句话说,我希望结果字符串尽可能短。
例如:
3 -> "3"
3. -> "3"
3.0 -> "3"
3.1 -> "3.1"
3.14 -> "3.14"
3.140 -> "3.14"
我,我愿意('%f' % x).rstrip('0').rstrip('.')
-保证定点格式,而不是科学计数法等。是的,它不像%g
那样精巧而优雅,但是,它可以工作(而且我不知道如何强迫%g
永远不要使用科学计数法;-)。
您可以使用%g
实现此目的:
'%g'%(3.140)
或者,对于Python 2.6或更高版本:
'{0:g}'.format(3.140)
来自docs for format
:format
原因(除其他因素外)
无关紧要的零[将]从有效位数中删除,并且如果有小数点也将被删除后面没有剩余数字。
尝试最简单且可能最有效的方法呢?方法[[normalize()删除所有最右边的尾随零。
g
在Python 2]中工作,并且在Python 3中工作。
-更新-
@ BobStein-VisiBone指出的唯一问题是,数字10、100、1000 ...将以指数表示。可以使用以下函数轻松解决此问题:from decimal import Decimal
print (Decimal('0.001000').normalize())
# Result: 0.001