在 IEEE 754 中减去不同的数字总是非零?
Subtracting different numbers in IEEE 754 always nonzero?
假设a
和b
是两个相同类型的IEEE-754有限FP数,并且a != b
为真,是否总是认为a-b != 0
?换句话说,a-b==0
对于有限的a
,b
是否意味着a == b
?
在 IEEE-754 算法中,对于有限 a
和 b
,a == 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
.
假设a
和b
是两个相同类型的IEEE-754有限FP数,并且a != b
为真,是否总是认为a-b != 0
?换句话说,a-b==0
对于有限的a
,b
是否意味着a == b
?
在 IEEE-754 算法中,对于有限 a
和 b
,a == 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
.