什麼!!!程式 0.1 + 0.2 不等於 0.3


分類

建立時間: 2022年6月4日 11:32
更新時間: 2022年6月4日 11:32

說明

我知道這個事情的時候,我還在寫 JavaScript
這個事情在 JavaScript 只是冰山一角而已

javascript_stupid

javascript_stupid1


但 0.1 + 0.2 不等於 0.3 不是只有 JavaScript 才會這樣
其實很多程式都有相同的問題
問題來了,如果 0.1 + 0.2 不等於 0.3 那它等於多少
我們以 JavaScript 來說好了,它等於 0.30000000000000004

原因

首先我們來看一下常用的十進制,10的質因數分解為 2 * 5
所以我們可以用小數表示分母使用10的質因數:
1/2、1/4、1/5、1/8、1/10
像 1/3 就是 0.333…3

因為電腦存的是二進制,它只能表示分母可以被2除盡的分數
0.1 = 1/10
0.2 = 1/5
分母10和5沒辦法用2的質因數表示,它們沒辦法精準表示
所以 0.1 + 0.2 就會存在誤差

具體計算機怎麼存的就太底層了,有興趣的讀者請再自行研究

參考

觀看次數: 1771
floatprogram程式浮點數
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!