IEEE754浮動小数点数は、signed zeroの概念を持っている、すなわち、片面制限として理解することができる-0.0
と+0.0
ための2つの異なるビットパターンが存在する:= LIM δ→0±δ:0±。この規格は、(署名された)無限大(+Inf
および-Inf
(1./±0.
が±Inf
となる)との一貫性のためにこれらの数値を提供し、丸め誤差の軽減に役立つという証拠がいくつかあります。IEEE754フロートで+0.0> -0.0が保持されないのはなぜですか?
彼らが異なるエンティティであるが、彼らは+0.0 == -0.0
が保持している同じ値、すなわち、へを比較という制限から明らかです。しかし、限界から私はまた、以下のことが保持されるべきだと考えています:+0.0 > -0.0
これはどんな小さなものでも保持するのでδです。しかしこれはではないです。このプロパティは時には便利なこともあります(たとえば、2つの0を区別することについて考える)、標準委員会がそれをしないことを選択した理由は何ですか? +0を区別すると-0利点を有し、それは時折、混乱することができるが、浮動小数点演算の基礎となる数システム上
簡単な説明は、2つの数値が同時に等しくなることはありません。 –
確かに、確かに意味があります。しかし、それは質問をする:それらが同じである場合、彼らはなぜ操作で異なって行動するのですか?言い換えれば、なぜ限界の「数学的なルール」に従うことを選択するのか、それ以外のものにするのはなぜですか? – summentier
Kahanの記事をhttps://people.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDFで読み始め、そこにあるリンクをたどります。 – gnasher729