JavaScript 中是否存在 parseDouble 函数?

50
在JavaScript中,我有一个21位数字,我想解析它。 JavaScript中是否存在parseDouble方法?
1个回答

86

在JavaScript中原生处理21位精度数字是不可能的。

JavaScript只有一种数字类型:"number",它是IEEE-754 Double Precision("double")值。因此,在JavaScript中,parseFloat相当于其他语言中的"parse double"。

然而,数字/"double"仅提供16个有效数字(十进制)的精度,因此读取具有21位数字的数字将丢失5个最不显着位数1

为了获得更高的精度(或准确性),必须使用"big number"库;

1 当使用IEEE“double”进行编码时,信息可能会丢失,因为它无法精确编码所有十进制值,但这是另一个问题


我需要解析一个21位数,它没有小数点。BigInteger和BigNumber只能精确解析16位数字。但是我有一个比这更大的数字,我需要精确解析它。请给予建议,语法方面的建议将不胜感激。谢谢。 - Priyesh Shah
1
@PriyeshShah 你需要从一个字符串开始,并将其传递给BigInteger/BigNumber进行解析。一旦在JavaScript中有了一个数字值,它就受到上述限制的影响 - 也就是说,它已经失去了不太重要的数字位。 - user2864740

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接