double精度問題

一個Double值由2個Double相加,好比明明是91.2 + 2.4,結果應爲93.6,爲何結果是93.6000000000001
爲何會無故地在小數點後面加不少個0,最後仍是一個1 ? 學習


計算機表示十進制數字都有偏差的,這是很天然的事情。因此對於浮點數,你不能隨便判斷一個變量是否「等於93.6」,而應該用 spa

Math.abs(x - 93.6)<double.Epsilon 

這樣的表達式來判斷x是不是93.6。code

這確實是在你學習計算機原理時應該學到的。blog

Double.Epsilon 字段class

表示大於零的最小正 Double 值。 此字段爲常數。變量

相關文章
相關標籤/搜索