Javascript幻数79753741930607500

时间:2014-06-06 12:37:11

标签: javascript node.js

有没有办法增加这个数字?

console.log(79753741930607500+1) // 79753741930607500
console.log(79753741930607499+3) // 79753741930607500

UPD:

zip加密/解密函数使用64位数字:

keys[0] = 305419896;
keys[1] = 591751049;
keys[2] = 878082192;

this.update_keys=function(c){
    keys[0]=crc32.crc32(keys[0],c);
    keys[1]=(((keys[1]+(keys[0]&0xff))*0x08088405+1)& 0xffffffff) >>>0;
    keys[2] = crc32.crc32(keys[2], keys[1] >>> 24);
};

键[1]中间计算可能更多79753741930607500。

存在对nodejs的通用解决方案,浏览器可以使用64位整数吗?

1 个答案:

答案 0 :(得分:3)

由于问题标记为,因此可以使用node-bigint模块。

使用

安装
npm install bigint

用法:

var bigint = require('bigint');

console.log(bigint('79753741930607500').add(3)); //<BigInt 79753741930607503>

虽然请注意,但是无法将其保留为整数,它将作为bigint字符串返回,或者您可以使用方法.toString()将其转换为字符串。如果您尝试将其作为整数返回,则会丢失精度或返回无穷大。