作者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/cn.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