国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網易首頁 > 網易號 > 正文 申請入駐

為啥計算機算不出0.1+0.2=0.3?

0
分享至


《夏洛特煩惱》

撰文 | 烏其多

審校 | 劉六七

???????????????????????????????????????????????????????????????????????

眾所不周知,大部分編程語言都算不出0.1+0.2=0.3。

比如Javascript一通計算下的結果就為:0.30000000000000004


cloud.tencent

你可能會說:“你先等會兒!”

然后打開windows上自帶的計算器,輸入“0.1+0.2”,然后拿著計算結果掄圓了準備打我的小臉。


自制

其實,計算器看似正確的結果,只是計算器把存在精度問題的最后幾位在顯示的時候舍入掉了而已。我們可以理解為這是一種“障眼法”。


自制

那問題到底出在哪兒?

要理解這個現(xiàn)象,得先搞明白計算機是怎么看待小數(shù)的。

我們平時用的是十進制,但計算機只懂二進制,也就是那一堆0和1。把十進制小數(shù)轉成二進制,用的是“乘2取整”法。以 0.1 為例:


自制

看出來了嗎?0.1 的二進制是無限循環(huán)的:0.00011001100110011……(0011 循環(huán))。

同樣,0.2 的二進制也是無限循環(huán):0.0011001100110011……(0011 循環(huán))。

看不出來也不要緊,我們只要記?。?/strong>我們十進制世界里大部分稀松平常的小數(shù),二進制都是無法精準表達的。

0.1 和 0.2在二進制世界里,就是“無限循環(huán)小數(shù)”,也就如同十進制無法精確表示 1/3 一樣。

除了0.1和0.2以外,π、√2等數(shù)學上的無理數(shù)(無限不循環(huán)小數(shù)),二進制下更是超綱了,計算機同樣也是無法精確表示的。

弄懂了這個概念,我們再來看計算機的存儲法則。

我們現(xiàn)在主流的編程語言,通用的存儲法基本都是“IEEE 754浮點數(shù)標準”,只要是使用了這個存儲標準的語言,比如JavaScript、C/C++、Java、以及曾號稱人人都應該掌握的Python等等,都是無法準確計算出“0.1+0.2=0.3”的。


自制

IEEE 754是由電氣與電子工程師協(xié)會(IEEE)于1985年制定的浮點運算技術標準。

在這部“數(shù)字憲法”制定之前,各大計算機廠家都有自己的浮點數(shù)存儲法則,你不兼容我的,我不care你的,主打一個各論各的,造成了很多混亂。

IEEE 754標準就規(guī)定了浮點數(shù)在計算機中的存儲格式,常見的有32位單精度和64位雙精度。每個數(shù)被拆分為符號位、指數(shù)位和尾數(shù)位三部分,尾數(shù)位長度是固定的(如雙精度為52位),那么遇到無限循環(huán)或者無限不循環(huán)小數(shù)的時候,怎么辦?那就是把尾數(shù)“一剪沒”了。

這樣截斷或舍入,就給0.1和0.2造成了存儲誤差。兩個近似值相加,誤差累積,就導致了0.1+0.2≠0.3的現(xiàn)象。


梅開二度、二度返場|《夏洛特煩惱》

你可能又得問:浮點數(shù)存儲為啥非得把尾數(shù)截了?計算機這么牛,全存了不行嗎?

答案很簡單:不是不想,是做不到。

很多人以為計算機存儲和計算都是絕對精確的,其實這是個誤解。

存整數(shù)確實可以——比如數(shù)字 42,轉成二進制 101010,放進固定大小的空間里,只要空間夠大(不溢出),拿出來還是 42,分毫不差。就像把雞蛋放進倉庫,拿出來還是那個雞蛋。

但問題是,數(shù)學世界里的數(shù)遠不止如此。無限循環(huán)和無限不循環(huán)的數(shù),遠遠多于整數(shù)。

計算機的存儲空間是有限的,無論用多少位,都裝不下一個無限長的二進制串。所以,它只能截取前幾十位,后面的直接扔掉。

你可能又會想:那能不能把空間做得再大點,存更多位?從幾十位變成幾百位也行??!

理論上可以,但實際意義不大。

對絕大多數(shù)工程、圖形、科學計算來說,“IEEE 754浮點數(shù)存儲法”所用的 64 位雙精度(約 15-17 位有效數(shù)字)已經足夠精確。


對不同領域來說,計算精度要求是不同的,天文學家能算準光年就很牛了|網絡



如設計飛機、渲染電影、模擬天氣,沒人需要知道 π 的第10000位是什么(當然,π能不能算到最后一位,在數(shù)學上意義重大,可能意味著數(shù)學大廈的地基比如微積分、極限理論被動搖)。況且,無理數(shù)有無窮多個,再大的空間也裝不完。

所以計算機選擇了一種“務實”的策略:用有限的存儲,近似地表示所有的實數(shù)。專業(yè)的相關學科就叫做計算機數(shù)值分析,研究的就是“近似”的藝術。

對于任何一個數(shù)值計算問題,數(shù)值分析都會追問:誤差有多大?算法快不快?結果穩(wěn)不穩(wěn)?能不能算出來?只要這四個問題都能給出滿意的答案,那就是合格的計算結果。

回到 0.1 + 0.2。這不是程序的 bug,而是二進制與有限存儲共同作用的必然結果。

理解這個“誤差”,就是數(shù)值分析教給我們的最重要一課:

認識誤差,理解誤差,最終學會與誤差共存,并控制它。

????

參考資料:

[1]https://bbs.huaweicloud.com/blogs/287063

[2] https://www.puntoflotante.net/FLOATING-POINT-FORMAT-IEEE-754.htm

[3]https://www.h-schmidt.net/FloatConverter/IEEE754.html

原創(chuàng)文章版權歸微信公眾號
“把科學帶回家”所有

轉載請聯(lián)系:bd@wanwuweb.com

凡本公眾號轉載、引用的文章 、圖片、音頻、視頻文件等資料的版權歸版權所有人所有,因此產生相關后果,由版權所有人、原始發(fā)布者和內容提供者承擔,如有侵權請聯(lián)系刪除。

??

▲ 關注我們,點亮在看,分享一下?

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
為什么WTO很少被提起了?中國入世談判花了15年,如今幾乎被架空

為什么WTO很少被提起了?中國入世談判花了15年,如今幾乎被架空

古史青云啊
2026-04-07 14:52:09
許家印認罪,其子女如今怎樣了?大兒子隱居海外,二兒子依然坎坷

許家印認罪,其子女如今怎樣了?大兒子隱居海外,二兒子依然坎坷

歷史偉人錄
2026-04-14 18:09:25
哈登領銜騎士迎戰(zhàn)猛龍!做好這五點,首輪晉級無懸念

哈登領銜騎士迎戰(zhàn)猛龍!做好這五點,首輪晉級無懸念

錢說體育
2026-04-15 01:11:40
央視曝光:AI色情視頻產業(yè)鏈,九塊九就能“定制”任何人

央視曝光:AI色情視頻產業(yè)鏈,九塊九就能“定制”任何人

三人成虎V5
2026-04-13 23:06:35
伊朗革命衛(wèi)隊:霍爾木茲海峽允許非軍事船只通過

伊朗革命衛(wèi)隊:霍爾木茲海峽允許非軍事船只通過

每日經濟新聞
2026-04-13 07:38:50
為什么一般人指揮不了大兵團作戰(zhàn)?除了這五位,還真沒誰了

為什么一般人指揮不了大兵團作戰(zhàn)?除了這五位,還真沒誰了

祁州校尉
2026-04-14 11:00:18
江南煙雨里的眼鏡少婦:知性掌控下的兩性主導者

江南煙雨里的眼鏡少婦:知性掌控下的兩性主導者

只要高興就好
2026-04-13 11:15:35
消息人士:美伊同意繼續(xù)談判,巴基斯坦呼吁?;鹧娱L45天!封鎖伊朗,超15艘美軍艦已到位!美媒:沙特施壓美國放棄封鎖霍爾木茲海峽

消息人士:美伊同意繼續(xù)談判,巴基斯坦呼吁?;鹧娱L45天!封鎖伊朗,超15艘美軍艦已到位!美媒:沙特施壓美國放棄封鎖霍爾木茲海峽

每日經濟新聞
2026-04-14 13:34:20
嫣然天使兒童醫(yī)院確定搬遷,拖欠租金已和房東達成一致,房東熱愛公益在租金上做出讓步;院方:12月前所有業(yè)務原址正常開展

嫣然天使兒童醫(yī)院確定搬遷,拖欠租金已和房東達成一致,房東熱愛公益在租金上做出讓步;院方:12月前所有業(yè)務原址正常開展

魯中晨報
2026-04-14 09:24:08
深夜,國際油價大跌

深夜,國際油價大跌

新浪財經
2026-04-14 23:02:53
林彪赴蘭州視察,人群中一眼認出李福澤,驚喜地問:你怎么在這兒

林彪赴蘭州視察,人群中一眼認出李福澤,驚喜地問:你怎么在這兒

歷史龍元閣
2026-04-14 07:40:12
臺灣到底何時統(tǒng)一?原來李敖早就預言了,說得很精準

臺灣到底何時統(tǒng)一?原來李敖早就預言了,說得很精準

顧史
2026-03-03 15:23:07
珠海斗門40年國企原副經理被“雙開”,現(xiàn)僅2名參保員工

珠海斗門40年國企原副經理被“雙開”,現(xiàn)僅2名參保員工

南方都市報
2026-04-14 19:36:37
無法理解!勇士后場新秀莫名其妙到了賽季后半段就不會打球了?

無法理解!勇士后場新秀莫名其妙到了賽季后半段就不會打球了?

稻谷與小麥
2026-04-14 16:09:46
勝寧波更衣室!徐杰展疲態(tài),胡明軒朱總開心,奎因吶喊,氛圍極佳

勝寧波更衣室!徐杰展疲態(tài),胡明軒朱總開心,奎因吶喊,氛圍極佳

籃球資訊達人
2026-04-14 22:54:51
老黃悶聲搞了個128GB怪物,筆記本內存天花板塌了

老黃悶聲搞了個128GB怪物,筆記本內存天花板塌了

碼上閑敘
2026-04-13 09:09:49
警惕“理論”幌子下的現(xiàn)實粉飾

警惕“理論”幌子下的現(xiàn)實粉飾

烽火瞭望者
2026-04-15 06:14:31
日本人,造了臺老頭樂...

日本人,造了臺老頭樂...

放毒
2026-04-14 17:14:38
知名國企集團,六個月沒發(fā)工資了

知名國企集團,六個月沒發(fā)工資了

新浪財經
2026-04-13 04:16:19
過分諂媚會顯得特別真誠!網友:看完發(fā)現(xiàn),我兩千的工資一點不冤

過分諂媚會顯得特別真誠!網友:看完發(fā)現(xiàn),我兩千的工資一點不冤

夜深愛雜談
2026-04-08 17:06:30
2026-04-15 07:31:00
萬物雜志
萬物雜志
面向未來的科學教育
3289文章數(shù) 103919關注度
往期回顧 全部

科技要聞

離職同事"煉化"成AI?這屆公司不需要活人了

頭條要聞

霍爾木茲海峽恢復部分通航 美軍封鎖伊朗港口持續(xù)

頭條要聞

霍爾木茲海峽恢復部分通航 美軍封鎖伊朗港口持續(xù)

體育要聞

帶出中超最大黑馬!他讓球迷們“排隊道歉”

娛樂要聞

網曝鐘麗緹代孕要了個男孩 備孕近10年

財經要聞

許家印認罪,他和恒大還有多少欠債?

汽車要聞

售12.99萬起/續(xù)航2000km 風云T9L上市

態(tài)度原創(chuàng)

家居
旅游
游戲
親子
軍事航空

家居要聞

現(xiàn)代融合 自然靈動

旅游要聞

全球藝術博物館訪問量排行出爐,上博東館入列前十 | 新民僑梁

系好安全帶!原作者確認《地鐵2039》將比前作更黑暗

親子要聞

盤點人類幼崽的狠人行為

軍事要聞

伊朗要求五個中東國家賠償戰(zhàn)爭損失

無障礙瀏覽 進入關懷版