Does JavaScript have double floating point number precision?

前端 未结 3 1058
一个人的身影
一个人的身影 2020-11-29 08:18

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

相关标签:
3条回答
  • 2020-11-29 08:31

    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

    0 讨论(0)
  • 2020-11-29 08:35

    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.

    0 讨论(0)
  • 2020-11-29 08: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)

    0 讨论(0)
提交回复
热议问题