我正在使用javascript計算器,用戶可以在文本字段中輸入值並執行操作。 現在,如果用戶輸入了一個非常大的值 例如5345345345353453453453535 它被轉換爲5.345345345353453e + 24javascript中的大數字
我使用parsrInt()將其轉換爲整數。它給了我5. 這是錯誤的。 任何人都可以建議如何解決它?
我正在使用javascript計算器,用戶可以在文本字段中輸入值並執行操作。 現在,如果用戶輸入了一個非常大的值 例如5345345345353453453453535 它被轉換爲5.345345345353453e + 24javascript中的大數字
我使用parsrInt()將其轉換爲整數。它給了我5. 這是錯誤的。 任何人都可以建議如何解決它?
嘗試parseFloat而不是parseInt。
<script type="text/javascript">
var value = parseFloat(5345345345353453453453535);
alert(value);
</script>
這不會給你'5345345345353453453453535',但只有四捨五入的價值。 – 2013-02-21 15:22:35
javascript中的整數與每個數字一樣,存儲爲IEEE754雙精度浮點數。
所以你只能準確地存儲最多2^51(尾數的大小)的整數。
這意味着你將不得不設計另一種格式來處理大整數,或者使用像BigInteger.js這樣的現有庫(Google會建議其他幾個)。
分析字符串參數,並返回指定基數 或鹼的整數。
因此parseInt()
正在你的價值作爲一個字符串5.345345345353453e+24
然後將其忽略任何非整數值和分級這是一個小數(5.345 ...),然後評估這5
。
由於@dystroy指出,如果你想用你需要使用自定義格式,也可以使用預先存在的JavaScript庫,這些大量地進行計算。
這可能是有用的:http://stackoverflow.com/questions/11124451/how-can-i-convert-numbers-into-scientific-notation – Schleis 2013-02-21 15:17:56
可能重複的[如何處理javascript中的大數字]( http://stackoverflow.com/questions/4288821/how-to-deal-with-big-numbers-in-javascript) – JaredMcAteer 2013-02-21 15:18:16