【问题标题】:parseFloat of string longer than 16 characters长于 16 个字符的字符串的 parseFloat
【发布时间】:2013-10-27 00:01:58
【问题描述】:

字符串的 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 parsefloat


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多