Re: [問題] 小數點某位數後去掉已回收
※ 引述《stma (BBS)》之銘言:
: 標題: [問題] 小數點某位數後去掉
: 時間: Sat Sep 11 23:35:12 2010
:
: 小數點後某位數都去掉 有這個指令嗎
:
: 因為在做運算時有時候顯示 a=4.1011
: 但實際若用4.1011去比較 a 則是不相等的
:
: 有辦法將a小數點五位數之後 或是某位數之後全部拿掉嗎
:
: 不然每次比較都是不等於蠻困擾的
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 140.113.106.203
: 推 bighead319:只顯示 a=4.1011,後面沒顯示出來,這個可以設定 09/12 01:02
: → bighead319:至於把某位數後面全部拿掉 a=floor(a*10^4)/10^4 即可 09/12 01:03
: → stma:感謝big大的技巧分享 09/12 13:38
: 推 waveken:也可以先用vpa 在用double 09/12 15:55
: → stma:突然發現1F方法有bug 運算後有時會被省略數字 09/13 23:21
: → stma:http://ppt.cc/Boa7 跑出來像這樣 09/13 23:29
: 推 sunev:這叫numerical error吧 09/13 23:51
: → stma:恩 爬文/floor 有人有類似情況 難道真的只能寫function來避免 09/13 23:55
那不是方法有bug,那是你沒搞清楚matlab顯示的問題,基本上matlab預設
是顯示到小數點後面第四位,但他在顯示時會顯示出四捨五入的結果,
EX: 你輸入 a = 1.739999,按enter後
他會顯示 a = 1.7400
所以你會誤以為他是1.74,但實際上,a這個變數在matlab裡的儲存值
依舊是 1.739999,不是1.7400。
所以才會發生你圖片中所謂的 "error",你可以輸入 format long,
讓matlab顯示到小數點後面14位,或是設定你需要的顯示位數,
詳細的請自己使用 help。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.232.204
→
09/14 02:59, , 1F
09/14 02:59, 1F
→
09/14 23:18, , 2F
09/14 23:18, 2F
→
09/14 23:19, , 3F
09/14 23:19, 3F
→
09/14 23:21, , 4F
09/14 23:21, 4F
→
09/14 23:22, , 5F
09/14 23:22, 5F
→
09/14 23:24, , 6F
09/14 23:24, 6F
討論串 (同標題文章)