[問題] single 運算問題

作者: name0625 (lawpy)   2016-04-20 12:38:31
碰到了個詭異的問題,想問問有沒有人知道是哪裡出問題...
>>single(411905856)
ans =
411905856
>>single(411905856)+100
ans =
411905952
>>single(411905856)+single(100)
ans =
411905952
確認過Workspace裡面沒有single名稱的變數
也確認過沒有非內建的single.m檔案
目前是改回double計算,但想知道是什麼原因
我找好久找不到為什麼
有沒有大大能夠開釋一下?
作者: name0625 (lawpy)   2016-04-20 12:39:00
版本:2016a
作者: celestialgod (天)   2016-04-20 12:40:00
single只能抓準前七位數
作者: name0625 (lawpy)   2016-04-20 12:47:00
是因為只有23bit的有效數位嗎?所以超過2^23的數字都不準的意思嗎?
作者: sunev (Veritas)   2016-04-20 12:48:00
這是內建指令,一些低階的內建指令不一定有m檔像plot也沒有m檔
作者: name0625 (lawpy)   2016-04-20 12:54:00
sun大 我是說確認過不是我弄了個single.m導致出錯ˊˋ
作者: celestialgod (天)   2016-04-20 12:57:00
是浮點數的有效位數significant digits你google一下都有相關的訊息,我非資訊出身無法詳細解釋
作者: sunev (Veritas)   2016-04-20 13:01:00
直接打"help 指令" 就可以知道是不是內建指令,這是最直接的方法。不小心將變數指令拿來當變數名稱用,也常常是詭異bug的原因。像是alpha beta gamma其實都是內建指令。
作者: name0625 (lawpy)   2016-04-20 13:04:00
好喔,大概了解了,謝謝兩位
作者: clang (llvm)   2016-04-24 22:18:00
浮點數有效位數問題

Links booklink

Contact Us: admin [ a t ] ucptt.com