gpt4 book ai didi

javascript - 将字符串转换为数字时javascript中的意外输出

转载 作者:行者123 更新时间:2023-11-29 10:05:38 25 4
gpt4 key购买 nike

在 MDN 中 this example on parseInt method

console.log(parseInt(4.7 * 1e22, 10)); // Very large number becomes 4
console.log(parseInt(4.7 * 1e20, 10)); //result is 470000000000000000000

或小于 20 的小数字给我预期的结果这是什么原因?

最佳答案

在@Xufox 的帮助下

console.log(parseInt(4.7 * 1e22, 10)); // Very large number becomes 4
console.log(parseInt(4.7 * 1e20, 10)); //result is 470000000000000000000

这里分步发生了什么:

  • 计算完成 (4.7 * 1e20) 和 (4.7 * 1e22)
  • 计算结果由 JavaScript 引擎字符串化,因此可以传递给 parseInt
  • 字符串被解析回数字
  • 终于记录下来了

JavaScript 使用科学记数法 chop 每个超过 20 位的数字。这意味着计算的结果是:

  • 470000000000000000000
  • 4.7e22

这些在传递给 parseInt 之前被字符串化:

  • “470000000000000000000”
  • “4.7e22”

这些是字符串,不是数字。 parseInt 现在将忽略第二个值中点之后的所有内容并返回 4

关于javascript - 将字符串转换为数字时javascript中的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44004455/

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