繁体   English   中英

在 Javascript 中将字符串转换为数字

[英]Converting String to Number in Javascript

我遇到了一个小问题,我试图将 String 转换为数字,但该 String 数字很大,因此无法正确转换为数字类型。

str = "6145390195186705543"
num = Number(str)
digits = [6,1,4,5,3,9,0,1,9,5,1,8,6,7,0,5,5,4,3]
let str = String(Number(digits.join(''))+1).split('') 

执行上述操作后,num 的值为 6145390195186705000,这不是我所期望的。 它应该是 6145390195186705543。

如果有人可以解释这一点并告诉您是否有其他方法,那将非常有帮助。

  • 我也尝试过 parseInt() 和 '+' 但没有任何效果。

如果要增加 integer 值的数组,可以连接数字并将其传递给BigInt构造函数。 在它是BigInt之后,您可以添加1n 添加值后,您可以对值进行字符串化并将其拆分。 最后,您可以将 map 每个数字返回到 integer。

 const digits = [6, 1, 4, 5, 3, 9, 0, 1, 9, 5, 1, 8, 6, 7, 0, 5, 5, 4, 3]; const str = (BigInt(digits.join('')) + 1n).toString().split('').map(digit => +digit); console.log(JSON.stringify(str)); // [6,1,4,5,3,9,0,1,9,5,1,8,6,7,0,5,5,4,4]

这是上面的代码,修改为function:

 const numArrayAdd = (bigIntSource, bigIntAmount) => (BigInt(bigIntSource.join('')) + bigIntAmount).toString().split('').map(digit => +digit); const digits = [6, 1, 4, 5, 3, 9, 0, 1, 9, 5, 1, 8, 6, 7, 0, 5, 5, 4, 3]; const str = numArrayAdd(digits, 1n); console.log(JSON.stringify(str)); // [6,1,4,5,3,9,0,1,9,5,1,8,6,7,0,5,5,4,4]

您可以在该变量之前添加一个 + 这是关于https://youtu.be/Vdk18Du3AVI?t=61的一个很好的例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM