IEEE754浮点数具有signed zero的概念,即-0.0
和+0.0
有两种不同的位模式,可以理解为单侧限制:±0 := lim δ→0 ±δ。该标准提供了这些数字,以便与(签名)无穷大+Inf
和-Inf
(1./±0.
给出±Inf
)保持一致,并且有一些证据表明它有助于减少舍入误差。
从限制中可以清楚地看出,虽然它们是不同的实体,但它们比较到相同的值,即+0.0 == -0.0
成立。但是,从极限开始,我还认为应该保留以下内容:+0.0 > -0.0
,因为它适用于任何小的δ。然而,这不正确。由于这个属性偶尔会有用(例如考虑区分两个零),标准委员会选择不这样做是否有任何令人信服的理由?
答案 0 :(得分:2)
Mathworld关于浮点算术引用的数字系统的文章David Goldberg's famous paper,其中说,
尽管区分+0和-0具有优势,但偶尔也会令人困惑。例如,有符号零破坏关系x =y⇔1/ x = 1 / y,当x = +0且y = -0时,该关系为假。但是,IEEE委员会认为利用零符号的优势超过了它的缺点。
委员会有website可以searched进行此类讨论,看起来签名的零是永久争议的根源。
我找不到任何关于你特定问题的信息。但正如一个推测,他们可能想要简化硬件,这种比较只会产生集合{less,greater,equal,unordered}的结果。允许-0< +0和-0 = +0会使某些电路复杂化(并且可能会变慢)。这可能被认为是不经济的。