[討論] 請教關於科學記號表示

看板MATLAB作者 ( 噗~)時間13年前 (2012/11/05 23:15), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
對於計算結果數值太大或太小的時候 matlab會自動用科學記號的方式表示 但是今天跑程式突然出現一個狀況 我把運算結果放在array的index裡 算到一半就出現警告 告訴我index必須是整數 雖然還是可以繼續算 不過最後出來的結果是錯的@@ 我檢查了一下發現 我的matlab在算1000*(15.196+1) 時 結果會變成 1.6196e+004 但是明明更大的數1000*(19.2920+1) 卻可以正常顯示成 20292 @@" 自己覺得很奇怪 就算用科學記號表示 實際數值應該也不會有錯才對 沒道理得到的結果會變成錯的 就再測試一下 a1=1000*(15.196+1) b1=16196 a1==b1 結果跑出來ans=0 @@" a2=1000*(19.292+1) b2=20292 a2==b2 結果ans=1 囧" 想請教大家 是我什麼地方誤會了嗎..... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.154.209

11/06 09:58, , 1F
abs(a1 - b1) = 1.8190e-12 浮點數不會精確
11/06 09:58, 1F

11/07 20:15, , 2F
所以是自己輸入的也不精確嗎? @@ 我還以為算出來的可能不準..
11/07 20:15, 2F
文章代碼(AID): #1GbzVwi2 (MATLAB)