AS3 parseInt()方法的局限性

时间:2015-12-15 10:40:39

标签: actionscript-3 parseint

我在将HEX字符串转换为as3

中的数字时遇到此问题

我有价值 str =“24421bff100317”;十进制值= 10205787172373271

但是当我解析它时,我得到了 parseInt(str,16)= 10205787172373272

任何人都可以告诉我这里我做错了什么

1 个答案:

答案 0 :(得分:0)

看起来添加一个(" 24421bff100318")工作正常。我必须假设这意味着这是精确错误的情况。

因为只有有限数量的数字可以用可用的内存来表示,所以计算机有时会进行估算。这在使用小数和非常大的数字时很常见。例如,在此代码段中可见,显然计算机无法添加基本小数:

for(var i=0;i<3;i+=0.2){
    trace(i);
}

如果此级别的准确性至关重要,有一些解决方法,即使用存储更多信息的数据类型(&#34; long&#34;而不是&#34; int&#34;在Java中 - 我相信&#34 ; Number&#34;可能在AS3中工作,但我没有针对您的方案进行测试)或者如果失败,将数字分成较小的部分并将它们加在一起。

为了进一步阅读以理解这个主题(因为我觉得它很有趣),请查看&#34;精确错误&#34;和&#34;数据类型&#34;。