[問題] single 運算問題

看板MATLAB作者 (lawpy)時間8年前 (2016/04/20 12:38), 編輯推噓3(3013)
留言16則, 4人參與, 最新討論串1/1
碰到了個詭異的問題,想問問有沒有人知道是哪裡出問題... >>single(411905856) ans = 411905856 >>single(411905856)+100 ans = 411905952 >>single(411905856)+single(100) ans = 411905952 確認過Workspace裡面沒有single名稱的變數 也確認過沒有非內建的single.m檔案 目前是改回double計算,但想知道是什麼原因 我找好久找不到為什麼 有沒有大大能夠開釋一下? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.105.182.14 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1461127114.A.946.html

04/20 12:39, , 1F
版本:2016a
04/20 12:39, 1F

04/20 12:40, , 2F
single只能抓準前七位數
04/20 12:40, 2F

04/20 12:47, , 3F
是因為只有23bit的有效數位嗎?
04/20 12:47, 3F

04/20 12:48, , 4F
所以超過2^23的數字都不準的意思嗎?
04/20 12:48, 4F

04/20 12:48, , 5F
這是內建指令,一些低階的內建指令不一定有m檔
04/20 12:48, 5F

04/20 12:49, , 6F
像plot也沒有m檔
04/20 12:49, 6F

04/20 12:54, , 7F
sun大 我是說確認過不是我弄了個single.m導致出錯ˊˋ
04/20 12:54, 7F

04/20 12:57, , 8F
是浮點數的有效位數
04/20 12:57, 8F

04/20 12:58, , 9F
significant digits
04/20 12:58, 9F

04/20 12:58, , 10F
你google一下都有相關的訊息,我非資訊出身無法詳細
04/20 12:58, 10F

04/20 12:58, , 11F
解釋
04/20 12:58, 11F

04/20 13:01, , 12F
直接打"help 指令" 就可以知道是不是內建指令,這是最直接
04/20 13:01, 12F

04/20 13:02, , 13F
的方法。不小心將變數指令拿來當變數名稱用,也常常是詭異
04/20 13:02, 13F

04/20 13:03, , 14F
bug的原因。像是alpha beta gamma其實都是內建指令。
04/20 13:03, 14F

04/20 13:04, , 15F
好喔,大概了解了,謝謝兩位
04/20 13:04, 15F

04/24 22:18, , 16F
浮點數有效位數問題
04/24 22:18, 16F
文章代碼(AID): #1N5mVAb6 (MATLAB)