2011-01-25 37 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

相關問題