简体   繁体   中英

Does JavaScript have double floating point number precision?

I know it's an odd question, but does JavaScript have the capacity to work with double's as opposed to single floats? (64 bit floats vs. 32 bits.)

According to the ECMA-262 specification (ECMAScript is the specification for Javascript), section 8.5:

The Number type has exactly 18437736874454810627 (that is, 2 64 −2 53 +3) values, representing the double-precision 64-bit format IEEE 754 values as specified in the IEEE Standard for Binary Floating-Point Arithmetic

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

In javascript type number it's float 64-bit number that support IEEE 754 standard and it's like double in C. And you can create 32-bit typed arrays by commands below and control each byte in each component by binding corresponded buffer.

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

But note that it's not supported in IE9, here browser compatibility table.

If you want extended presicion like long double , you can use double.js or decimal.js library.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM