You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS字符串转整数问题:预期结果与实际输出不符

问题原因

JavaScript里的Number是双精度64位浮点数,它能精确表达的整数范围是**-2^53 到 253**(也就是-9007199254740992至9007199254740992)。你要转换的数值`6145390195186705543`虽然没超过253,但它的二进制位数超出了浮点数尾数的53位存储上限,转成Number时会被自动舍入到最近的可精确表示的数值,所以末尾几位变成了000。

解决办法

要精确处理这种大整数,用JavaScript的BigInt类型就可以:

方式1:通过构造函数转换字符串

var str = '6145390195186705543';
var num = BigInt(str);
console.log(num); // 输出 6145390195186705543n

方式2:直接使用BigInt字面量

如果数值是固定的,直接在数字末尾加n就能创建精确的BigInt:

var num = 6145390195186705543n;
console.log(num); // 输出 6145390195186705543n

提醒:BigInt和普通Number不能直接做算术运算,需要先统一类型再操作。

内容的提问来源于stack exchange,提问作者CodeBaze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 02:31:15