0
我想一個字符串在JavaScript中轉換數字,但這裏是我的問題:字符串號碼有誤
var string = "068999999501111443";
parseInt(string); // 68999999501111440
Number(string); // 68999999501111440
爲什麼會出現這種情況,如何解決?
謝謝
我想一個字符串在JavaScript中轉換數字,但這裏是我的問題:字符串號碼有誤
var string = "068999999501111443";
parseInt(string); // 68999999501111440
Number(string); // 68999999501111440
爲什麼會出現這種情況,如何解決?
謝謝
這是因爲數量太大,無法準確存儲。它被存儲爲一個浮點數,它只能存儲一定數量的精度。除了它的最大精度之外,你會看到奇怪的舍入誤差。
對於具有大量小數位的小數,您會得到相似的效果。這是更爲人熟知的,因爲它往往會更頻繁地發生,但這與此處發生的效果完全相同。
因爲該數字大於'Number.MAX_SAFE_INTEGER'。 – fuyushimoya
@limelights - 不,不是。如果是,那麼輸出將與輸入有很大不同。 – Simba
你超過整數最大長度+/- 9007199254740991,所以JavaScript將有處理這個數字的問題http://stackoverflow.com/questions/307179/what-is-javascripts-highest-integer-value-that-a-數字可以去無洛杉磯 – baao