2011-01-25 35 views
1

刚刚学习as3 for flex。我试图做到这一点:AS3添加1(+1)无法将字符串强制转换为数字?

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

var result:String = String(Number(someNumber) + 1); 

我试图把表达在一起,不管我似乎做的结果不同的方式始终为10150125903517628,而不是10150125903517629

任何人有任何想法?!谢谢!

回答

10

JavaScript/ActionScript中的所有数字实际上都是双精度的IEEE-754浮点数。它们使用一个64位的二进制数来表示你的十进制数,并且精度约为16或17位十进制数。

您已经用17位数字反对该格式的限制。 10150125903517628的内部二进制表示与10150125903517629没有什么不同,这就是为什么当您添加1时没有看到任何差异。

但是,如果您添加了2,那么您将(应该?)看到结果为10150125903517630,因为这足以作为内部二进制表示将改变的“步骤”。

+0

好的,但我想添加1到这个数字,而不是两个。可能吗?不同的类型可能?谢谢! – toddm 2011-01-25 21:46:08

相关问题