我的问题在 Flex 中描述起来非常简单:
0.8 - 0.2 = 0.6000000000000001
以前有人得到过这个,我确定前两个成员是 0.8 和 0.2 并且是 Number 类,为什么会发生这种情况?
另一件事,我从*
像这样输入:
var value:*=0.8;
var castValue:Number = Number(value);
但仅此而已,如果我追踪value
我得到 0.8 而不是 0.800000000000001 之类的。
这是一个相当普遍的问题all语言因为浮点数精度 http://en.wikipedia.org/wiki/Floating_point。您无能为力,因为它是所有机器上都可能出现的错误值。
您可以做的是设置您想要的数字精度:
trace(castValue.toFixed(5)); // Gives five decimals after the point
很多时候,Flash 在将数字转换为字符串(用于视觉显示)时会为您四舍五入这些数字,从而消除用户可见的大部分错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)