我想格式化最多不超过2个小数位的浮点数列表。但是,我不想尾随零,也不想尾随小数点。
因此,例如4.001=> 4,4.797=> 4.8,8.992=> 8.99,13.577=> 13.58。
4.001
4
4.797
4.8
8.992
8.99
13.577
13.58
简单的解决方案是。但是,这看起来很丑陋,而且看起来很脆弱。还有更好的解决方案,也许带有一些神奇的格式标志? ('%.2f' % f).rstrip('.0')('%.2f' % f).rstrip('0').rstrip('.')
('%.2f' % f).rstrip('.0')
('%.2f' % f).rstrip('0').rstrip('.')
您需要将0和.剥离分开;这样你永远不会剥夺自然0。
0
.
或者,使用format()函数,但这实际上归结为同一件事:
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'