1
Monniaux的優秀文章"The Pitfalls of Verifying Floating Point Arithmetic"給出了意想不到的數字行爲的例子。但是,大部分示例都依賴於擴展精度FPU或擴展精度操作(例如,乘加)。除了有符號零和涉及NaN的比較,在擴展精確硬件被禁用時,是否有任何令人驚訝的數字行爲的好例子?沒有擴展精度FPU的數值陷阱
Monniaux的優秀文章"The Pitfalls of Verifying Floating Point Arithmetic"給出了意想不到的數字行爲的例子。但是,大部分示例都依賴於擴展精度FPU或擴展精度操作(例如,乘加)。除了有符號零和涉及NaN的比較,在擴展精確硬件被禁用時,是否有任何令人驚訝的數字行爲的好例子?沒有擴展精度FPU的數值陷阱
程序員經常驚訝的例子是x + 1 == x
。在單精度浮點數中,由於尾數精度有限,因此x
小到2^25
。這通常會在通過小時間步長增加仿真中的時間值時出現。 A similar problem影響了愛國者導彈。
是的,很好的例子。我要指出的是,對於具有不同指數的任何兩個數字都會發生這種精度損失:當指數具有足夠不同的幅度時,完全吸收其中一個項。 – user492922