[讨论] 0.6/0.2不是3?

楼主: A83X8CJ8 (Elca)   2015-11-07 16:54:17
大家好
我刚开始接触Matlab
最近写程式的时候
发现floor(0.6/0.2) = 2 这个神奇的bug....
(好像不只0.6/0.2 还有其他的也会)
上网找没找到类似的讨论
请问有人知道原因吗?
作者: celestialgod (天)   2015-11-07 17:02:00
rounding erro吧error
作者: Steven0422 (Steven)   2015-11-07 17:27:00
这年头 user只会乱说有bug
楼主: A83X8CJ8 (Elca)   2015-11-07 18:01:00
对我来说算是bug呀 因为这个error让程式跑出bug
作者: linux5566 (linux56)   2015-11-07 18:52:00
作者: mailroach   2015-11-08 07:18:00
加个eps不就好了
作者: rex0707 (我就是我)   2015-11-08 13:51:00
floor.....
作者: rtj (Anonymity)   2015-11-10 22:28:00
round(0.6/0.2)就等于3floor((0.6/0.2)*10000000.0)=29999999,可见内部运算上误差
楼主: A83X8CJ8 (Elca)   2015-11-10 23:18:00
谢谢各位大大的解释 我又学到了几种方法避开这个问题了

Links booklink

Contact Us: admin [ a t ] ucptt.com