This question already has answers here:
Formatting floats without trailing zeros
(18个回答)
6年前关闭。
我想格式化最多不超过2个小数位的浮点数列表。但是,我不想尾随零,也不想尾随小数点。
因此,例如
简单的解决方案是
一些测试:
(18个回答)
6年前关闭。
我想格式化最多不超过2个小数位的浮点数列表。但是,我不想尾随零,也不想尾随小数点。
因此,例如
4.001
=> 4
,4.797
=> 4.8
,8.992
=> 8.99
,13.577
=> 13.58
。简单的解决方案是
('%.2f' % f).rstrip('.0')
('%.2f' % f).rstrip('0').rstrip('.')
。但是,这看起来很丑陋,而且看起来很脆弱。还有更好的解决方案,也许带有一些神奇的格式标志? 最佳答案
您需要分开0
和.
剥离;这样,您将永远不会剥夺自然的0
。
或者,使用format()
函数,但这实际上归结为同一件事:
format(f, '.2f').rstrip('0').rstrip('.')
一些测试:
>>> def formatted(f): return format(f, '.2f').rstrip('0').rstrip('.')
...
>>> formatted(0.0)
'0'
>>> formatted(4.797)
'4.8'
>>> formatted(4.001)
'4'
>>> formatted(13.577)
'13.58'
>>> formatted(0.000000000000000000001)
'0'
>>> formatted(10000000000)
'10000000000'
关于python - 最多*最多*小数位数的大多数Python方式打印,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14997799/
10-12 03:00