作者name0625 (lawpy)
看板MATLAB
標題[問題] single 運算問題
時間Wed Apr 20 12:38:31 2016
碰到了個詭異的問題,想問問有沒有人知道是哪裡出問題...
>>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://webptt.com/m.aspx?n=bbs/MATLAB/M.1461127114.A.946.html
1F:→ name0625: 版本:2016a 04/20 12:39
2F:→ celestialgod: single只能抓準前七位數 04/20 12:40
3F:→ name0625: 是因為只有23bit的有效數位嗎? 04/20 12:47
4F:→ name0625: 所以超過2^23的數字都不準的意思嗎? 04/20 12:48
5F:推 sunev: 這是內建指令,一些低階的內建指令不一定有m檔 04/20 12:48
6F:→ sunev: 像plot也沒有m檔 04/20 12:49
7F:→ name0625: sun大 我是說確認過不是我弄了個single.m導致出錯ˊˋ 04/20 12:54
8F:→ celestialgod: 是浮點數的有效位數 04/20 12:57
9F:→ celestialgod: significant digits 04/20 12:58
10F:→ celestialgod: 你google一下都有相關的訊息,我非資訊出身無法詳細 04/20 12:58
11F:→ celestialgod: 解釋 04/20 12:58
12F:推 sunev: 直接打"help 指令" 就可以知道是不是內建指令,這是最直接 04/20 13:01
13F:→ sunev: 的方法。不小心將變數指令拿來當變數名稱用,也常常是詭異 04/20 13:02
14F:→ sunev: bug的原因。像是alpha beta gamma其實都是內建指令。 04/20 13:03
15F:→ name0625: 好喔,大概了解了,謝謝兩位 04/20 13:04
16F:推 clang: 浮點數有效位數問題 04/24 22:18