我試圖拉數(721576481415319 ),它開始於21字符,從頁面的像這樣的稱號整數parseInt函數改變
parseInt(document.title.substring(21), 10);
這將返回字符串作爲整數721576481415319 。我似乎無法弄清楚爲什麼它會改變最後兩個數字。任何幫助,將不勝感激。
我試圖拉數(721576481415319 ),它開始於21字符,從頁面的像這樣的稱號整數parseInt函數改變
parseInt(document.title.substring(21), 10);
這將返回字符串作爲整數721576481415319 。我似乎無法弄清楚爲什麼它會改變最後兩個數字。任何幫助,將不勝感激。
根據What is JavaScript's highest integer value that a Number can go to without losing precision?一個整數的最大值爲9007199254740992
我試過http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_parseint你的計算,我可以確認你的問題。
它看起來像一個問題解析超出此最大值,它是四捨五入後兩位數字。
謝謝。這解決了問題 – metalfoley 2014-10-09 05:09:21
您已超出JavaScript所使用的double-precision floating-point format的限制。你不能直接在JavaScript中使用這個精確的數字。您可以將它用作字符串,但是如果您需要對其進行算術運算,則需要使用a bignum library。
什麼是完整的標題字符串? – 2014-10-09 04:57:08
@ Sebas - 哦,我現在看到它。 – 2014-10-09 05:05:21
http://www.2ality.com/2013/01/parseint.html,有趣的文章,'所有的數字都是javascript'浮點數! – Sebas 2014-10-09 05:07:26