[問題] 如何直接判斷浮點數運算時的誤差?(贈P幣)

作者: baobao566 (寶寶)   2018-11-29 08:14:59
  為了這個問題困擾了許久,不斷地查資料,查完這個觀念,又看到新的名詞與此題
有關聯。以我查到的資料VB.Net在浮點數運算時會將數字以IEEE754來標準來做,預設的
浮點數型態是Double,所以是64位,有誤差是因為將他轉成2進制,小數部分如果無限
循環,取到53位往最靠近的捨入(Round to nearest),二進制的這個模式我不太懂,
翻資料查到的大概又都是英文...。
  還有一些環境的因素,我看到一個文件上面說編譯器可能會幫你最佳化運算式,
例如說x = a+b-a -> x = b,那這題有很多環境的問題,我要如何判斷呢?
(出處:https://goo.gl/oAzyNB Compiler Optimization)
  如果判斷此題需要手算,請問有無快速手算判斷的方法?此題是今年高職技藝競
賽的程式設計賽前模擬學科試題,有想過他可能只是出經典範例來考你知不知道浮點
數有誤差,如果只是這樣就太好了,但是以防萬一還是有個準確判斷的方法比較安心。
作者: alan23273850   2018-11-30 16:31:00
所以原 PO 有按照 IEEE 標準先跑過一遍嗎
作者: suhorng ( )   2018-12-02 01:23:00
Round to nearest even 要讓捨去或 *進位* 後是偶數XXXXXX11 => 進位 XXXXXX01 => 捨去不只二進位有這樣, 十進位也有 "四捨六入五成雙"

Links booklink

Contact Us: admin [ a t ] ucptt.com