在 IEEE 754 中减去不同的数字总是非零?

Subtracting different numbers in IEEE 754 always nonzero?

假设ab是两个相同类型的IEEE-754有限FP数,并且a != b为真,是否总是认为a-b != 0 ?换句话说,a-b==0对于有限的ab是否意味着a == b

在 IEEE-754 算法中,对于有限 aba == b 当且仅当 a-b == 0。这就是 IEEE-754 数字系统中包含次正规数的具体原因。

并非所有语言或语言的实现都符合 IEEE-754。即使他们使用 IEEE-754 格式,他们也可能不会严格使用 IEEE-754 操作。

a-b==0 for finite a, b 意味着 a == b 可以从 IEEE-754 标准中的算术规则推导出来。

由于许多语言的实际实现可能会以影响这一点的方式偏离 IEEE-754 算法,所以在编程中说出您的意思是最安全的。如果您关心两个变量之间的差异,请询问 a-b。如果您关心它们是否相等,请询问 a==b.