[问题] 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