Excel 計算結果莫名多出很多位小數,據說是浮點誤差?

時間 2021-05-05 15:40:23

1樓:Excel自習室

在Excel裡計算(4.1-4.2)+1=?如果現在開啟了電腦的小夥伴,可以馬上試一試,或許你會說:結果沒錯呀,等於0.9

其實,你被Excel欺騙了,馬上設定保留15位小數,讓結果現出原形吧。

是不是驚呆了,聰明絕頂的Excel竟然連這麼簡單的計算題都不會?

其實,存在無數種簡單的算式,Excel都是算不出來的,比如:(4.1-4.2)+1=0.899999999999999

別說算式,有些資料在Excel裡面根本是無法輸入的。不信?你試一下在單元格裡輸入65535.848,再設定單元格讓它現出真身,竟然是65535.8479999999

在計算機裡,這樣的例子是很常見的,分析原因有二

一類是「四捨五入」造成的

Exce中顯示的數字與實際小數字數不一致,就會出現下圖這樣的低階錯誤

上圖中,資料是以預設的保留2位小數顯示,如果設定保留3位小數,原因就原形畢露了

第二類是由「浮點運算」造成的

什麼是「浮點運算」呢?其實大學的時候高等數學和計算機原理裡面是講過的,不過毫無疑問,自習君把知識還給老師了。

簡單而言,因為計算機採用的是二進位制,有時候,二進位制無法準確地表達十進位制的數,是無窮的數,而計算機只儲存有限的位數,從而產生了誤差。

這類似於1/3 在十進位制下無法得到準確表示(迴圈小數 0.3333333333……),若要顯示成小數就只能顯示最接近的3.33,從而產生了0.0033……的誤差。

三種方法解決問題

1、 用函式round進行四捨五入舉例:如在A1單元格輸入3.1415,我們在B1輸入公式=ROUND(A1,2),則顯示為3.

14;若輸入=ROUND(A1,3) ,則顯示為3.142

使用該函式後單元格顯示的資料就是真實的資料,再運算,就不會出現電腦與手工結果不一致的情況

2、 將單元格複製到記事本(txt),再複製回excel即可(推薦使用)因為記事本所見既是真實內容,固可達到函式round的效果

3、 在Excel選項中設定 「以顯示精度為準」此選項會強制將工作表中每個數字的值成為顯示的值。

此選項影響該工作簿的所有工作表,會造成原始資料的丟失且無法恢復,一般不建議使用或使用前備份原始資料。

2樓:Fresh.Qin

我遇到相同的問題,我用的office2010 ,也遇到同樣的問題了!!

不要再說什麼資料格式問題,我資料格式沒問題的!!=IMSUB(K3,L3) ---減法函式

以下網上的方法都不行,無法解決:1、再讓你們看看最詭異的事情!!同樣一批資料,格式完全一致,有的正常有的異常!!

2、配置精度選項--沒有用

******

最後、round轉換搞定:=ROUND(IMSUB(K2,L2),2)

我只想問,微軟的工程師能上知乎嗎?趕快解決下這類千年大bug吧!!!!!

使用軟體進行有限元計算時,保證計算結果精度的具體措施和方法是什麼?

劉笑天 保證精度的前提是你了解你在幹嘛 簡單的方法就是對自己提問 你的任何乙個想法任何乙個操作你都十分清楚你在幹嘛有幾種解決方案你為什麼選這個而不是其他解決方案舉個例子。去乙個地方 坐火車汽車飛機三種你為什麼有足夠的理由和信心去坐飛機然後飛機選頭等艙還是經濟艙 落地以後做機場巴士還是打車 到地方先吃...

EXCEL中,如何顯示計算過程?

華思遠 Alt F11,插入 模組 Function get formulatext rng As Range Dim str,restr As String Dim reg,mh Set reg CreateObject vbscript.regexp str rng.Formula reg.Gl...

計算機二級Excel怎麼自學?

紫薯卷 ppt很簡單的你要是有題庫的話做做題就行了 excel的話,把函式的所有情況整理出來,常用的背下來就行了 太難太偏的函式可以放棄的簡單的背下公式練習做題就好了加油 傑杰開門 建議找乙個學習資料還是帶哪種提庫哪種,建議去蒙寶上買乙個未來教育的學習包,我親測有用!不用太但心只要基礎紮實就可以穩過...