如果我们给出更多的16位数字,如何获得正确的整数值?

时间:2014-02-05 07:27:35

标签: javascript jquery

在我的代码中,我得到的输入值(整数变量)多于16位数字无法获得正确的值。

HTML:

<div><input id="number_id" value="111111111111111111"></div>

脚本:

$("#number_id").blur(function(){
var ns = $("#number_id").val();
alert(Number(ns))
});    

任何人都有解决方案请帮助我。

http://jsfiddle.net/Qntr2/

2 个答案:

答案 0 :(得分:4)

JavaScript仅使用64位浮点数,这意味着您只能获得大约16位十进制数字的精度。这是数字类型的基本限制。

您可以将数字存储为字符串。如果你需要用这么大的数字进行计算,你将不得不使用一个实现任意精度算术的库。

答案 1 :(得分:1)

javascript中的所有数字最多可支持9007199254740992,即16位数字。如果存储的不止于此,则会被解释为错误。 (http://www.2ality.com/2012/07/large-integers.html

最好的方法是将其存储到字符串中。如果你想用大整数做一些基本的事情,你可以使用这个https://github.com/jtobey/javascript-bignum