【问题标题】:Does JavaScript have double floating point number precision?JavaScript 是否具有双浮点数精度?
【发布时间】:2011-04-06 01:50:25
【问题描述】:

我知道这是一个奇怪的问题,但是 JavaScript 是否有能力使用双精度而不是单浮点数? (64 位浮点数与 32 位。)

【问题讨论】:

    标签: javascript floating-point numerical double-precision


    【解决方案1】:

    【讨论】:

    【解决方案2】:

    根据 ECMA-262 规范(ECMAScript 是 Javascript 的规范),第 8.5 节:

    Number 类型正好有 18437736874454810627(即 264−253+3)个值,表示双精度 64 位格式 IEEE 754 值为在 IEEE 二进制浮点算术标准中指定

    来源:http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf (PDF)

    【讨论】:

    【解决方案3】:

    在 javascript 中键入 number 它是支持 IEEE 754 标准的浮点 64 位数字,它类似于 C 中的 double。您可以通过命令创建 32 位类型数组下面通过绑定对应的缓冲区来控制每个组件中的每个字节。

    let a = new Float32Array(length);
    let b = new Float64Array(length);
    

    但是注意IE9不支持,这里是browser compatibility表。

    如果你想要像 long double 这样的扩展精度,可以使用 double.jsdecimal.js 库。

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 2015-05-17
      • 2018-02-23
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      相关资源
      最近更新 更多