33

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

4

3 回答 3

37

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

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

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

于 2010-08-31T04:05:04.230 回答
36

JavaScript 中的所有数字都是 64 位浮点数。

参考:

http://www.hunlock.com/blogs/The_Complete_Javascript_Number_Reference

http://www.crockford.com/javascript/survey.html

于 2010-08-31T04:02:40.493 回答
1

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

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

但请注意,IE9 不支持,这里是浏览器兼容性表。

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

于 2018-09-16T09:47:34.487 回答