[討論] 0.6/0.2不是3?

看板MATLAB作者 (Elca)時間8年前 (2015/11/07 16:54), 編輯推噓1(217)
留言10則, 7人參與, 最新討論串1/1
大家好 我剛開始接觸Matlab 最近寫程式的時候 發現floor(0.6/0.2) = 2 這個神奇的bug.... (好像不只0.6/0.2 還有其他的也會) 上網找沒找到類似的討論 請問有人知道原因嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.125.189 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1446886460.A.E58.html

11/07 17:02, , 1F
rounding erro吧
11/07 17:02, 1F

11/07 17:02, , 2F
error
11/07 17:02, 2F

11/07 17:27, , 3F
這年頭 user只會亂說有bug
11/07 17:27, 3F

11/07 18:01, , 4F
對我來說算是bug呀 因為這個error讓程式跑出bug
11/07 18:01, 4F

11/07 18:52, , 5F
11/07 18:52, 5F

11/08 07:18, , 6F
加個eps不就好了
11/08 07:18, 6F

11/08 13:51, , 7F
floor.....
11/08 13:51, 7F

11/10 22:28, , 8F
round(0.6/0.2)就等於3
11/10 22:28, 8F

11/10 22:33, , 9F
floor((0.6/0.2)*10000000.0)=29999999,可見內部運算上誤差
11/10 22:33, 9F

11/10 23:18, , 10F
謝謝各位大大的解釋 我又學到了幾種方法避開這個問題了
11/10 23:18, 10F
文章代碼(AID): #1MFRmyvO (MATLAB)