gpt4 book ai didi

javascript - 为什么 parseInt() 没有正确转换我的数字字符串?

转载 作者:行者123 更新时间:2023-11-29 23:19:35 25 4
gpt4 key购买 nike

我在一个函数中有一些逻辑,它接受一串称为数字的数字,如下所示:

6145390195186705543

然后我尝试像这样使用 parseInt() 进行转换:

parseInt(digits)

结果:

digits = parseInt(digits);

6145390195186705000

谁能帮我理解为什么会这样?以及如何获得准确的转化​​?

最佳答案

这是 "broken" floating point math 的另一个版本:Javascript 使用 64 位来存储小至原子大小的数字,大至宇宙中原子的数量。由于范围很广,因此无法准确存储,因此数字以不精确的方式存储,但可以代表非常广泛的范围。在您的情况下,6145390195186705000 是 JS 能够存储的不准确版本,因为 6145390195186705543 无法存储。

and how i can get an accurate conversion?

您无法存储“准确数字”,因此您无法准确转换它。然而,有些库允许您像处理数字一样处理字符串,例如 BigIntJS。 .


由于这是一个常见问题,这将在下一个 JS 版本中解决,请参阅 proposal .您目前可以在新版 chrome 中进行测试。

关于javascript - 为什么 parseInt() 没有正确转换我的数字字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51215954/

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