gpt4 book ai didi

javascript - 有一个大整数数组需要返回一个数组,该数组将数组表示的值加 1

转载 作者:行者123 更新时间:2023-12-03 00:25:24 25 4
gpt4 key购买 nike

出于学习目的。有一个大整数数组需要返回一个数组,该数组将数组表示的值加 1。

尝试将数组转换为整数,但使用后parseInt('9223372036854775807', 10) 收到 9223372036854776000,而不是 9223372036854775807这里出了什么问题?

var arr = [ 9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5, 4, 7, 7, 5, 8, 0, 7 ];

function upArray(arr){

var numb = arr.join('');
numb = parseInt(numb, 10);

var result = numb + 1;

console.log(result);
result = result.toString(10).split('').map(Number);
return result;
}

最佳答案

您超出了 JavaScript 数字类型的容量

IEEE-754 double 浮点(JavaScript 使用的数字类型)无法精确表示所有数字

除了 Number.MAX_SAFE_INTEGER + 1 (9007199254740992) 之外,IEEE-754 浮点格式无法再表示每个连续的整数

此外,除非您希望使用与十进制不同的基数,否则您不需要对 parseInt 使用第二个参数

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

如果您使用带有数字数组的代码,当加入时在此限制内,您的代码将起作用

var arr = [ 9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5 ];
function upArray(arr){

var numb = arr.join('');
numb = parseInt(numb);
var result = numb + 1;
console.log(result)
result = result.toString(10).split('').map(Number);
return result;
}

console.log(upArray(arr))

关于javascript - 有一个大整数数组需要返回一个数组,该数组将数组表示的值加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54114521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com