当我在python上比较两个数字时,即使它们完全相同,这两个数字之间的差也不是零,而是很小的值(<10 ^(-16))。
例如
if A == B:
print('We are the same')
什么都没发生。 但是:
if A - B < 10^(-16):
print(A-B)
它会打印出差异。
问题出在哪里?
答案 0 :(得分:2)
在Python中,^
运算符执行异或,因此10^(-16)
的意思是10 XOR (-16)
,它正确返回了-6
(比A-B
)。
如果要执行幂运算,则必须写10**(-16)
,现在支票可以按预期运行。
这意味着您的代码应为:
if A - B < 10**(-16):
print(A-B)
# OUTPUT: 0