Re: [其他] 0.1+0.1+0.1-0.3=?已回收

看板MATLAB作者 (World Cup)時間14年前 (2011/06/24 05:00), 編輯推噓2(207)
留言9則, 6人參與, 最新討論串2/3 (看更多)
※ 引述《WC (World Cup)》之銘言: : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 70.74.196.74 : 推 llewxam:其實這是電腦的問題 不是MATLAB的問題 用float point 06/23 12:50 : → llewxam:本來就有finite word length error 06/23 12:50 : 推 llewxam:http://en.wikipedia.org/wiki/Round-off_error 06/23 12:52 : 推 Gwaewluin:那是浮點數誤差問題,非整數請不要使用==來判斷 06/23 13:16 : 推 pen5472:那如果不得已要判斷 應如何改寫?? 06/23 18:47 : 推 windless99:我也想知道 QQ 不然有時後會出錯 06/23 20:17 : → panzertp:fabs(a-b)<eps 06/23 20:19 : → gomi:這是浮點數計算的問題 只能說你的程式語言老師常請假 06/23 21:18 那不知道可不可以請程式語言老師不常請假的 gomi 簡單的說明為什麼 只有 0.1+0.1+0.1-0.3 會這樣 0.1+0.1-0.2 就是等於 0 0.1+0.1+0.1+0.1-0.4 也是等於零 連 (1/3+1/3+1/3)-1 都等於零了, 為什麼只有這個例子是這樣 謝謝 --  ╔╯═╗  ╦╦╦ ╬╬╯ ╰╦ ╬ ╬╬╗ ╦╰╬═  ╠╬═ ══   ╔══╗ ╔╬╬╗ ╬ ╩ ║ ╬>║< ╬═ ╔╗╔╗ ∕╚﹨﹨ ╠═ ╠═ ║ ╔╬╗ ╚╯ ╩ ╝  ╩═ ╚╝║╯   ╠═╗ ╚═╗╚══╝ ╠╬║    ╬╬║ ═╬ ╬ 國家研究院AcademyEarthEnvironEcophilia環境板 ╯ 。 ╯ ╩╯ m3m3ρ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 142.244.32.19 ※ 編輯: WC 來自: 142.244.32.19 (06/24 05:02)

06/24 06:38, , 1F
二進位轉十進位造成的誤差吧?
06/24 06:38, 1F

06/24 07:56, , 2F
他大概不知道什麼叫四捨五入吧
06/24 07:56, 2F

06/24 10:07, , 3F
雖然不是真懂 但是我也猜是二進位的問題
06/24 10:07, 3F

06/24 10:07, , 4F
可以再試試看0.1*6-0.6 0.1*8-0.8 應該都=0
06/24 10:07, 4F

06/24 11:05, , 5F
=\=0 =0
06/24 11:05, 5F

06/24 22:53, , 6F
請參考冼鏡光老師所發表的一文 "使用浮點數最最基本的觀念"
06/24 22:53, 6F

06/24 22:55, , 7F
http://0rz.tw/6vVqK 或許一般人不該一開始就學MATLAB
06/24 22:55, 7F

06/24 22:55, , 8F
不然會沒學到一些程式的基本概念
06/24 22:55, 8F

06/24 23:48, , 9F
一堆人把MATLAB當mathematica用也算是常態了
06/24 23:48, 9F
文章代碼(AID): #1E0wbrDd (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1E0wbrDd (MATLAB)