浮点运算 (Python 3) 查询 - 比较变量的总和
Floating Point Arithmetic (Python 3) Query - Comparing sums of variables
提问的问题:
17: 如果我们有变量 var1 = 0.1 var2 = 0.2 并且我们想将它们的总和与 var3 = 0.3 进行比较,以下哪项是正确的做法?
- (var1 + var2) == var3
- round(var1,1) + round(var2, 1) == round(var3,1)
- 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 answer,math.isclose
是比较浮点数的实用方法。
提问的问题: 17: 如果我们有变量 var1 = 0.1 var2 = 0.2 并且我们想将它们的总和与 var3 = 0.3 进行比较,以下哪项是正确的做法?
- (var1 + var2) == var3
- round(var1,1) + round(var2, 1) == round(var3,1)
- 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 answer,math.isclose
是比较浮点数的实用方法。