Board logo

標題: Excel 簡單算式 D1=A1-B1-C1 無法顯示正確答案 [打印本頁]

作者: Extra    時間: 2017-10-2 00:20     標題: Excel 簡單算式 D1=A1-B1-C1 無法顯示正確答案

本帖最後由 Extra 於 2017-10-2 00:22 編輯

小弟有以下一個 Excel 算式疑問,向大家請教。

使用 Excel 2010 及 2013 版本。

excel_wrong_calculation.JPG

A1 輸入 2295.2
B1 輸入 2283.5
C1 輸入 11.7
D1 輸入 =A1-B1-C1

為什麼 D1 會顯示 -1.81188E-13,而不是 0 呢?

圖片附件: excel_wrong_calculation.JPG (2017-10-2 00:18, 15.85 KB) / 下載次數 63
https://h2.hkepc.com/forum/attachment.php?aid=2014926&k=e50267e777785347f6fd04863d68322c&t=1781645135&sid=2sWpjFuCiu


作者: slyh    時間: 2017-10-2 02:14

Floating point precision 問題(我估),可以試下係browser console打2295.2-2283.5-11.7,都係出-1.8118839761882555e-13

可參考:
https://stackoverflow.com/questi ... g-point-math-broken
作者: bhkk00    時間: 2017-10-2 03:02

本帖最後由 bhkk00 於 2017-10-2 03:05 編輯
小弟有以下一個 Excel 算式疑問,向大家請教。

使用 Excel 2010 及 2013 版本。



A1 輸入 2295.2
B1  ...
Extra 發表於 2017-10-2 00:20

十進制小數變2進制好易出現問題, 例如0.2, 0.7會出現無限長2進制小數
直到嗰個儲存方法極限, 會做rounding
然後做完 + - 再變返十進制
所以有小數, 計完之後 最後rounding 一次

例如 round(D1, 5)
作者: s20021139    時間: 2017-10-2 17:11

本帖最後由 s20021139 於 2017-10-2 17:16 編輯

EDIT: 唔知點解...公式: =A1-B1-C1

2017-10-02 17-15-24_活頁簿1 - Excel.png

圖片附件: 2017-10-02 17-15-24_活頁簿1 - Excel.png (2017-10-2 17:15, 23.75 KB) / 下載次數 60
https://h2.hkepc.com/forum/attachment.php?aid=2015119&k=3e9045c58eeae2a877d6b0773bd92165&t=1781645135&sid=2sWpjFuCiu


作者: wing_hk    時間: 2017-10-18 23:16

這是浮點運算中的必然結果, 在很多硬件中都會出現可以用以下連結中兩種方法避免錯誤結果

https://support.microsoft.com/zh ... te-results-in-excel

https://social.technet.microsoft ... mal-bug?forum=excel





歡迎光臨 電腦領域 HKEPC Hardware (https://h2.hkepc.com/forum/) Powered by Discuz! 7.2