如果满足某些条件,我只是想在大数字上加1。这是我的javascript:
console.log('n1->'+n1+ ' - ' + typeof(n1) );
console.log('n2->'+n2);
if(n1 != null && n2 != n1){
console.log('adding 1');
n2 = n1 + 1;
}
console.log('n2->'+n2);
这是控制台输出:
n1->443751754287812600 - number
n2->null
adding 1
n2->443751754287812600
我期待n2=443751754287812601
甚至n2=4437517542878126001
。你能解释一下它为什么不起作用吗?以及如何正确地完成总和?
感谢您的帮助。
答案 0 :(得分:5)
JavaScript中的数字在大多数语言中通常称为double:IEEE754 double precision floating point numbers。
它们的精度有限(最大整数为2 ^ 53 = 9,007,199,254,740,992),你只是通过了这个限制。
答案 1 :(得分:1)
这个数字太大了,所以你可以做的是你可以使用strint或其他一些库。这个库允许你通过将它们存储在字符串中来处理任意大的整数。或者您可以使用BigInteger.js
检查此链接是否有strint
https://github.com/rauschma/strint
Google了解更多