none
Excel 2007 的運算問題? RRS feed

  • 問題

  • 分別在A1~A51輸入:-50.12, -49.12, -48.12, -47.12, ......, -3.12, -2.12, -1.12, -0.12;
    並且在A52~A102輸入:0.12, 1.12, 2.12, 3.12, ......, 47.12, 48.12, 49.12, 50.12
    最後再A103輸入:=SUM(A1:A102)
    結果顯示:2.131628207E-13
    但實際答案應該為"0"才對,
    另外發現先前也有人po文反映相同類型的問題,
    所以個人認為是Excel的設計瑕疵,還是其他問題?
    該如何解決?
    2009年9月2日 上午 04:25

解答

所有回覆

  • 這是計算機概論說明過的東西,浮點數的基本問題就是會有計算誤差,除了純數學軟體會處理計算誤差外,一般軟體都是這樣,所以不是 Excel 設計瑕疵,而是 IEEE 754 設計規範就是這樣,而 CPU 就是依據這個設計規範,所以一般軟體閃不掉,純數學軟體是另外建立一個大數運算的類別,用整數的方式分開計算,自然可以閃掉這個問題。

    出傳統計算機按下: 1 / 3 * 3 = 0.9999999 ,這中間的差異就是計算誤差,只是電腦的計算誤差遠比計算機小,處理方式也不同。

    簡單來說,你若是確認為兩位數的東西,就使用儲存格格式限定小數兩位即可,Excel 會自動進位變成 0 。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年9月2日 下午 02:42
  • 所謂的浮點運算和誤差這我有聽說過,但接下來我想請問的是:
       若將A1~A51輸入的值改成:-50.1234, -49.1234, -48.1234, ......, -2.1234, -1.1234, -0.1234;
       A52~A102改成:0.1234, 1.1234, 2.1234, ......, 48.1234, 49.1234, 50.1234
       在A103相同輸入:=SUM(A1:A102)
       結果為"0"與實際上一樣,
       為何一樣是運用浮點運算,一個結果與實際不符另一個卻符合實際答案,不解?
    謝謝解惑!
    • 已標示為解答 Jyun-Min 2009年9月3日 上午 06:16
    • 已取消標示為解答 Jyun-Min 2009年9月3日 上午 06:19
    2009年9月2日 下午 03:36
  • 何解請回去念計算機概論,不然 google 也是個好方法。
    http://www.google.com.tw/search?hl=zh-TW&source=hp&q=IEEE+754+%E6%B5%AE%E9%BB%9E%E6%95%B8+%E8%AA%A4%E5%B7%AE&meta=&aq=f


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年9月2日 下午 04:40
  • 這篇是微軟的 kb
    http://support.microsoft.com/default.aspx/kb/214118/zh-tw
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 Jyun-Min 2009年9月3日 上午 06:15
    2009年9月2日 下午 04:41