【发布时间】:2017-01-30 19:03:30
【问题描述】:
IEEE754浮点数有signed zero的概念,即-0.0和+0.0有两种不同的位模式,可以理解为单边限制:±0 := limδ→0 ±δ。该标准提供这些数字是为了与(有符号的)无穷大+Inf 和-Inf(1./±0. 给出±Inf)保持一致,并且有一些证据表明它有助于减少舍入误差。
从限制中可以清楚地看出,虽然它们是不同的实体,但它们比较到相同的值,即+0.0 == -0.0 成立。但是,从限制来看,我也认为以下内容应该成立:+0.0 > -0.0,因为它适用于任何小的 δ。然而,这不是真的。由于此属性有时会很有用(例如,考虑区分两个零),标准委员会选择不这样做有什么令人信服的理由吗?
【问题讨论】:
-
一个简单的解释是两个数不能同时相等,因为一个大于另一个。
-
嗯,当然,这当然是有道理的。但是,它引出了一个问题:如果它们相同,为什么它们在操作中的行为会有所不同?换一种说法:为什么我们在某些情况下选择遵循极限的“数学规则”,而在其他情况下却不遵循?
-
从people.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF 上的 Kahan 文章开始阅读,然后点击您在那里找到的链接。
标签: floating-accuracy ieee-754