JS中parseInt转换超过16位数据失真问题解决方法

博客讲述了在力扣(LeetCode)做题时遇到的一个问题,即当处理超过16位的整数时,常规方法导致超出部分变为0。解决方案是利用JavaScript中的BigInt类型进行大整数运算,避免数据丢失。博主提供了具体代码实现,将数字数组加1并返回新的数字数组。
摘要由CSDN通过智能技术生成

最近在刷力扣的题目,遇到这么一题
在这里插入图片描述
意思就是输入个整数变成数字数组,在把整数加1再变成数字数组输入出来。题目很简单,思路也很简单,直接转换成数字加1再变成数组输出就好。但是当我自信写下代码提交,这个时候就出现了问题,当输入的数组长度超过了16位,也就是数字长度超过了16位时候16位后面的数据都变成了0,程序报错。
解决方法:放弃用parseInt转换而是采用Bigint转换
(Bigint的用法自行百度,我就不当搬运工了)
附上这题的解决方法:

var plusOne = function(digits) {
    var num = BigInt(digits.toString().replace(/,/g, "")) + 1n
    return Array.from(num.toString())
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值