parseFloat超过16个字符的字符串

时间:2013-10-27 00:01:59

标签: javascript parsefloat

字符串的parseFloat是否限制字符串可以包含多少个字符?我在这里看不到任何限制:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

但是在控制台中运行以下内容似乎显示了我没想到的结果。

parseFloat('1111111111111111'); // 16 characters long
// result 1111111111111111

parseFloat('11111111111111111'); // 17 characters long
// result 11111111111111112

有人可以为我打破这个吗?

1 个答案:

答案 0 :(得分:2)

在Javascript中,浮点数存储为double precision值。它们有大约16位有效数字,这意味着17位数字不一定准确存储。

您可以提供任意长度的数字到parseFloat(),但是不可能存储大于1.79769×10 308 的任何长度,这是可能的最大值。存储在双精度变量中。

如果您有时间,我建议您阅读此内容:What Every Computer Scientist Should Know About Floating-Point Arithmetic