[問題]matlab讀取excel資料數值問題

看板MATLAB作者 (?)時間12年前 (2013/06/04 20:46), 編輯推噓3(305)
留言8則, 3人參與, 最新討論串1/1
想請教我在excel有一個欄位是38.40 將要用這欄位去做計算 但我讀進來matlab做計算時 matlab是以38.399999999999999去顯示並做計算 我推測顯示是因為format long造成的問題 所以我將其改成format short 雖然matlab是以38.40去做顯示 但依舊是用38.399999999999999去做計算 精度會不準,想請問有什麼辦法能解決這個問題, 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.163.81.146

06/04 20:49, , 1F
原因:float point error, 解symbolic toolbox但你得想清楚這
06/04 20:49, 1F

06/04 20:50, , 2F
是不是你要的
06/04 20:50, 2F

06/04 20:59, , 3F
如果他應該要是整數,就該用int的形態存
06/04 20:59, 3F
※ 編輯: shouqing0801 來自: 1.163.81.146 (06/04 22:21) 像我輸入38400/1000 但不知道為何運算結果會是38.399999999999999 ※ 編輯: shouqing0801 來自: 1.163.81.146 (06/04 22:43)

06/05 00:41, , 4F
使用四捨五入吧~
06/05 00:41, 4F

06/05 01:20, , 5F
如果你希望留在整數,請宣告成int
06/05 01:20, 5F
我是用實數計算,我不清楚為何excel上面的值是38.40 但我用format long去顯示 其值變成38.399999999999999 而不是應該是38.400000000000000 而且運算也是用38.399999999999999計算 我的excel資料裡有的是整數,但有的是浮點數,所以沒辦法全部都設為整數 另外我直接在command windows 輸入38.15 ans = 38.149999999999999 謝謝 我能了解前面你們所說的,我只是不知道為什麼會出現這樣的情況 這讓我無法理解 38.149999999999999 是怎麼來的 雖然在matlab官方討論區有人貼了相關IEEE文獻, 但我還是無法理解,感謝 ※ 編輯: shouqing0801 來自: 1.163.81.146 (06/05 02:18)

06/05 02:48, , 6F
電腦裡的數字是有最小單位的,就這樣。
06/05 02:48, 6F
十分感謝,文獻上面有提到, 想請問有辦法令其在運算時是用顯示的數字去記算嗎? 謝謝. ※ 編輯: shouqing0801 來自: 1.163.81.146 (06/05 02:51)

06/05 06:27, , 7F
大多數時候差10^-15沒關係,你在乎的話得用支援符號計算
06/05 06:27, 7F

06/05 06:27, , 8F
的軟體,像是mathematica之類的。
06/05 06:27, 8F
文章代碼(AID): #1HhU6Mnp (MATLAB)