浮点运算 (Python 3) 查询 - 比较变量的总和

Floating Point Arithmetic (Python 3) Query - Comparing sums of variables

提问的问题: 17: 如果我们有变量 var1 = 0.1 var2 = 0.2 并且我们想将它们的总和与 var3 = 0.3 进行比较,以下哪项是正确的做法?

  1. (var1 + var2) == var3
  2. round(var1,1) + round(var2, 1) == round(var3,1)
  3. round(var1+ var2, 10) == round(var3, 10)

答案是 2,但在阅读有关浮点运算的内容时,我以为是 3。谁能指导我解决这个问题?

进入你的 python 编辑器:

print(round(var1 + var2, 10) == round(var3, 1))

Returns True

print(round(var1,1) + round(var2, 1 ) == round(var3,1))

Returns False

你是对的。

请注意,从 python 3.5 开始,根据 this answermath.isclose 是比较浮点数的实用方法。