ParseInt下降位数

正在处理一个leetcode问题,希望我向数组形式添加一个值。 LINK TO PROBLEM

它适用于所有示例,但请参见下面的控制台日志中的示例。由于某种原因,parseInt会丢弃最后两位(6,3)并将其替换为零。

这是为什么?

var addToArrayForm = function(A,K) {
  let number = A.join('');
  number = parseInt(number,10);
  number += K;

  return number.toString().split('');
};

console.log(
  addToArrayForm(
    [1,2,6,3,7,1,9,5,4,3],516
  )
);
liu_haoran 回答:ParseInt下降位数

这不是parseInt,而是JavaScript存储数字的方式,这是64位浮点数。您只是没有足够的精度来以这种格式存储那些最后的数字。实际上,只需将其追溯到控制台即可(在下面的代码段中),可以通过您测试的数量来证明这一点。

确实存在变通方法,例如,您可以使用BigInt,但我真的不认为您的锻炼希望您投入其中。

console.log("12630717197566446663");
console.log(12630717197566446663);

,

与JS中的数字解析有关。尝试使用BigInt。

const { match: { path,url } } = this.props;
本文链接:https://www.f2er.com/2585670.html

大家都在问