javascript - 长度超过 16 个字符的字符串的 parseFloat

标签 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

谁能帮我分解一下?

最佳答案

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

您可以向 parseFloat() 提供任意长度的数字,但无法存储大于 1.79769×10308 的任何数字,这是最大的可以存储在 double 变量中的可能值。

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

关于javascript - 长度超过 16 个字符的字符串的 parseFloat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613256/

相关文章:

javascript - 隐藏 Electron alteast 1 文件的源代码。可能吗?

javascript - 为什么 Javascript parseFloat 在 for 循环中附加额外的值?

arrays - String to Float64 : multiple-value strconv. 单值上下文中的 ParseFloat()

javascript - 如何将 $(this) 固定在另一个 $(this) 中

javascript - JavaScript 能否捕获由页面对象触发的 404 错误?

javascript - 在检查 NULL 值时使用 parseFloat

javascript - forEach() 中的 parseFloat() 不工作

vue.js - 我如何在 VueJS 中自己实现 v-model.number?

大型代码库中的 Javascript,将颜色设置为不可变?

javascript - 单击更改 css 属性