我试图拉数(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