字符串的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
有人可以为我打破这个吗?
答案 0 :(得分:2)
在Javascript中,浮点数存储为double precision值。它们有大约16位有效数字,这意味着17位数字不一定准确存储。
您可以提供任意长度的数字到parseFloat()
,但是不可能存储大于1.79769×10 308 的任何长度,这是可能的最大值。存储在双精度变量中。
如果您有时间,我建议您阅读此内容:What Every Computer Scientist Should Know About Floating-Point Arithmetic