[問題] Excel的奇怪Bug?

看板Office作者 (Rubber)時間10年前 (2015/07/29 01:21), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串1/1
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體:Excel 版本:2007 其實我只是很簡單再寫一個資料檢測公式 (函數知道的不多 所以都用簡單的運算式做資料檢測整理) 意外發現一個Bug A1=0.07 B1=A1*100 C1=ROUND(A1*100,0) D1=B1-C1 E1=IF(D1=0,"Y","N") F1=IF((B1-C1)=0,"Y","N") 理論上 E1跟F1儲存格應該得到一樣的答案 但是E1得到的是Y F1得到的是N 然後只有某些數字會有這樣的bug A1= 0.07 0.14 0.28 0.29 0.55~0.58等..... 若是A1= 0.007 B1跟C1皆是乘上1000也不會有這樣的問題 這個bug最後是不影響我的資料整理(改寫乘上1000就解決了...) 只是對這個Bug感到無比疑惑....="= 有爬文查到 "浮點算術中的進位誤差" 這個Bug 但我也不知道是不是能用來解釋我遇到的這個問題 有人有解嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.235.223 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1438104072.A.6E3.html

07/29 07:42, , 1F
應可解釋遇到的問題,以a1=0.07,b1=a1*100來看,儲存格的
07/29 07:42, 1F

07/29 07:44, , 2F
值如連結https://goo.gl/yIjmdO 7.0000000000000009
07/29 07:44, 2F

07/29 07:45, , 3F
如a1改為0.08時,儲存格的值https://goo.gl/D9Llsb 為8
07/29 07:45, 3F

07/29 08:04, , 4F
a1=0.07時f1評估值公式b1-c1時產生非0的情形
07/29 08:04, 4F

07/29 08:04, , 5F
07/29 08:04, 5F

08/02 01:21, , 6F
可是如果b1-c1時產生非0的情形 為什麼E1="Y"?
08/02 01:21, 6F

08/02 16:16, , 7F
d1的b1-c1是0,https://goo.gl/5wpUU8
08/02 16:16, 7F

08/02 16:16, , 8F
所以E1="Y"
08/02 16:16, 8F

08/02 16:18, , 9F
回文b1-c1產生非0是指f1評估值公式內,所顯示為非0的情況
08/02 16:18, 9F
文章代碼(AID): #1Ljxe8RZ (Office)
文章代碼(AID): #1Ljxe8RZ (Office)