35

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.)

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Travis
  • 7,391
  • 12
  • 43
  • 52

3 Answers3

38

All numbers in JavaScript are 64-bit floating point numbers.

Ref:

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

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

Zsolt Meszaros
  • 21,961
  • 19
  • 54
  • 57
Moin Zaman
  • 25,281
  • 6
  • 70
  • 74
38

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

The Number type has exactly 18437736874454810627 (that is, 264−253+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)

Daniel Vandersluis
  • 91,582
  • 23
  • 169
  • 153
  • https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf –  Aug 31 '17 at 05:23
  • 1
    This is the only correct answer. It refers to and quotes the ECMAScript specification, which is the only source that matters. The other answer only has sources that are not definitive. – Dave F May 24 '18 at 01:24
2

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.