我正在研究python项目并遇到问题。
我有一个for循环,用数字列表。问题是当我打印出列表以检查数字是否正确时。
一些更简单的计算是: 2.6 * 3和1.3 * 9
如果你用计算器检查你应该得到7.8和11.7,但我得到7.800000000000001和11.700000000000001
这不是一个大问题,但我不喜欢它的样子。 (第一世界的问题,我知道)
有没有办法解决它?
答案 0 :(得分:1)
使用字符串格式?
print "%.2f" % (2.6 * 3)
%.2f表示将浮动打印到2dp
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用格式打印。
res = 2.6*3
"%0.2f" % res
答案 3 :(得分:0)
这是一个包含列表的完整示例。
>>> n = [1.9, 7.8 , 9,3.4]
>>> print n
[1.8999999999999999, 7.7999999999999998, 9, 3.3999999999999999]
>>> twodecimals = ["%.2f" % v for v in n]
>>> print twodecimals
['1.90', '7.80', '9.00', '3.40']
>>> print twodecimals[0]
1.90
%.2f
表示只打印2个小数点。同样,.1f
表示1个小数点,依此类推。