AS3添加1(+1)不能对字符串强制转换为Number?

tod*_*ddm 1 apache-flex flash actionscript-3

只是学习as3 for flex.我想这样做:

var someNumber:String = "10150125903517628"; //this is the actual number i noticed the issue with

var result:String = String(Number(someNumber) + 1);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了将表达式放在一起的不同方法,无论我做什么,结果总是等于10150125903517628而不是10150125903517629

有人有主意吗??!谢谢!

Luk*_*keH 10

JavaScript/ActionScript中的所有数字都是双精度IEEE-754浮点数.它们使用64位二进制数来表示您的小数,并具有大约16或17位十进制数字的精度.

您的17位数字符合该格式的限制.10150125903517628的内部二进制表示与10150125903517629没有区别,这就是为什么添加1时没有看到任何差异的原因.

但是,如果您添加2,那么您(应该?)将结果视为10150125903517630,因为这足以使内部二进制表示形式发生变化的"步骤".