JavaScript是否具有双浮点数精度?

时间:2010-08-31 03:57:05

标签: javascript floating-point numerical double-precision

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

3 个答案:

答案 0 :(得分:35)

答案 1 :(得分:32)

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

  

Number类型恰好有18437736874454810627(即2 64 -2 53 +3)值,表示双精度64位格式IEEE 754值为在IEEE二进制浮点运算标准中规定

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

答案 2 :(得分:-1)

在javascript类型 number 中,它是支持IEEE 754标准的64位浮点数,就像C中的 double 一样。您可以通过命令创建32位类型数组并通过绑定相应的缓冲区来控制每个组件中的每个字节。

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

但是请注意,此处的browser compatibility表在IE9中不受支持。

如果您想使用扩展名,例如 long double ,则可以使用double.jsdecimal.js库。