如何在python中删除尾随数字

时间:2014-06-23 10:30:45

标签: python

我正在研究python项目并遇到问题。

我有一个for循环,用数字列表。问题是当我打印出列表以检查数字是否正确时。

一些更简单的计算是: 2.6 * 3和1.3 * 9

如果你用计算器检查你应该得到7.8和11.7,但我得到7.800000000000001和11.700000000000001

这不是一个大问题,但我不喜欢它的样子。 (第一世界的问题,我知道)

有没有办法解决它?

4 个答案:

答案 0 :(得分:1)

使用字符串格式?

print "%.2f" % (2.6 * 3)

%.2f表示将浮动打印到2dp

答案 1 :(得分:0)

您可以使用format显示所需的输出:

>>> print(format(2.6 * 3, ".1f"))
7.8

此处".1f"表示“浮点数到一个小数位”。

答案 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个小数点,依此类推。