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

眾所不周知,其實計算機算不出 0.1+0.2=0.3?!

0
分享至


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

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

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


cloud.tencent

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

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


自制

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


自制

那問題到底出在哪兒?

要理解這個現象,得先搞明白計算機是怎么看待小數的。

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


自制

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

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

看不出來也不要緊,我們只要記住:我們十進制世界里大部分稀松平常的小數,二進制都是無法精準表達的。

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

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

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

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


自制

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

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

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

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


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

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

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

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

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

但問題是,數學世界里的數遠不止如此。無限循環和無限不循環的數,遠遠多于整數。

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

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

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

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


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



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

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

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

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

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

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

????

參考資料:

[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

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

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.

相關推薦
熱點推薦
四家美國公司,利潤超過中國全部500強

四家美國公司,利潤超過中國全部500強

難得君
2026-04-24 15:42:55
25歲南開大學研究生李一帆確診癌癥,身高1米8長得帥,體重僅70斤

25歲南開大學研究生李一帆確診癌癥,身高1米8長得帥,體重僅70斤

朗威談星座
2026-04-25 15:11:59
盧特尼克暴怒:中國一塊芯片也沒買,美國的技術封鎖終于迎來反噬

盧特尼克暴怒:中國一塊芯片也沒買,美國的技術封鎖終于迎來反噬

忠誠TALK
2026-04-24 23:06:00
小縣城人人喊窮,為啥打牌消費從來不差錢,普通人靠啥維持生活?

小縣城人人喊窮,為啥打牌消費從來不差錢,普通人靠啥維持生活?

復轉這些年
2026-04-23 22:44:06
“畸胎瘤殘留在咽喉”,有軟骨有脂肪!6歲男孩飲食習慣不對勁,上海醫生一查驚了……

“畸胎瘤殘留在咽喉”,有軟骨有脂肪!6歲男孩飲食習慣不對勁,上海醫生一查驚了……

環球網資訊
2026-04-24 18:36:17
58歲江珊近況曝光,150斤穿西裝腚大腰圓,但臉年輕幾乎沒皺紋

58歲江珊近況曝光,150斤穿西裝腚大腰圓,但臉年輕幾乎沒皺紋

白面書誏
2026-04-25 17:55:06
“門口快遞三天沒動,不對勁!”北京物業保潔員一閃念,救了一命

“門口快遞三天沒動,不對勁!”北京物業保潔員一閃念,救了一命

環球網資訊
2026-04-25 09:01:24
人有沒有高血壓看晨起就知道?高血壓患者:晨起一般會有5個表現

人有沒有高血壓看晨起就知道?高血壓患者:晨起一般會有5個表現

芹姐說生活
2026-04-25 16:07:52
近7場1勝 皇馬球迷貼面怒罵球員:不知羞恥 姆巴佩用帽遮臉+逃離

近7場1勝 皇馬球迷貼面怒罵球員:不知羞恥 姆巴佩用帽遮臉+逃離

我愛英超
2026-04-25 07:46:50
公務員“平替”崗位,擠滿了沒上岸的年輕人!

公務員“平替”崗位,擠滿了沒上岸的年輕人!

燈錦年
2026-04-25 12:04:55
240萬重罰+徹底除名!張本智和被棄,這場決裂藏著多少殘酷真相

240萬重罰+徹底除名!張本智和被棄,這場決裂藏著多少殘酷真相

行舟問茶
2026-04-25 13:02:48
中國第四艘航母官宣:是核動力!舷號19,命名大概率是“江蘇號”

中國第四艘航母官宣:是核動力!舷號19,命名大概率是“江蘇號”

書紀文譚
2026-04-25 16:03:21
卡洛斯·布澤爾之子卡梅隆·布澤爾宣布參加2026年NBA選秀

卡洛斯·布澤爾之子卡梅隆·布澤爾宣布參加2026年NBA選秀

北青網-北京青年報
2026-04-25 14:13:07
葉新萍被查實!科室1.3億收入賬上只剩5964萬,舉報人懸賞一套房

葉新萍被查實!科室1.3億收入賬上只剩5964萬,舉報人懸賞一套房

社會日日鮮
2026-04-25 06:49:46
保時捷也沒流量了,2026年,是誰的最后一屆北京車展?

保時捷也沒流量了,2026年,是誰的最后一屆北京車展?

路咖汽車
2026-04-24 13:50:58
42歲,傅首爾徹底變樣了!瘦成標準美女,網友:和麥琳像親姐妹

42歲,傅首爾徹底變樣了!瘦成標準美女,網友:和麥琳像親姐妹

娛樂皮皮醬
2026-04-24 17:33:27
1967年,江青講話的照片,注意看旁邊的周總理,一臉無奈眉頭緊鎖

1967年,江青講話的照片,注意看旁邊的周總理,一臉無奈眉頭緊鎖

海佑講史
2026-04-25 17:15:06
耗資14億,海外觀眾好評度98%,中國觀眾不買賬,首日票房僅950萬

耗資14億,海外觀眾好評度98%,中國觀眾不買賬,首日票房僅950萬

靠譜電影君
2026-04-24 21:51:40
臺球皇帝亨得利:丁俊暉碰上趙心童就打雞血,但他防守壓力太大了

臺球皇帝亨得利:丁俊暉碰上趙心童就打雞血,但他防守壓力太大了

楊華評論
2026-04-25 01:56:27
眼紅啊!從年薪20萬到125萬,一上海交大碩士特斯拉6年收入345萬

眼紅啊!從年薪20萬到125萬,一上海交大碩士特斯拉6年收入345萬

火山詩話
2026-04-23 07:11:53
2026-04-25 18:27:00
一起神回復 incentive-icons
一起神回復
神回復、高級黑、內涵帝
5020文章數 22815關注度
往期回顧 全部

科技要聞

DeepSeek V4發布!黃仁勛預言的"災難"降臨

頭條要聞

伊朗最高領袖一條腿截肢面部嚴重燒傷 通信方式披露

頭條要聞

伊朗最高領袖一條腿截肢面部嚴重燒傷 通信方式披露

體育要聞

火箭0-3觸發百分百出局定律:本季加時賽9戰8敗

娛樂要聞

鄧超最大的幸運,就是遇見孫儷

財經要聞

90%訂單消失,中東旺季沒了

汽車要聞

2026款樂道L90亮相北京車展 樂道L80正式官宣

態度原創

藝術
教育
旅游
本地
手機

藝術要聞

美國發現一部《十七帖》!這字還原真實的王羲之筆法,放大10倍仍無瑕疵

教育要聞

秀我中國|當大學生之前,先來村小當“小先生”

旅游要聞

繁花未盡 音浪已起——新鄉何以常來常“新”?

本地新聞

云游中國|逛世界風箏都 留學生探秘中國傳統文化

手機要聞

一加Ace 6至尊版手機規格匯總,4月28日發布

無障礙瀏覽 進入關懷版