JavaScript中数字类型的描述

时间:2019-06-24 22:49:10

标签: javascript

我希望向外行人介绍如何将数字存储在javascript中。以下陈述是否准确:

Very large numbers in javascript are often approximated.
However,precision should be guaranteed to 16 digits.
For example, 123455.373849 can always be represented accurately,
but the number 9,007,199,254,740,991,293 may not be.

是否有更好的方法来解释它,或者上面的陈述中有任何不正确之处?

1 个答案:

答案 0 :(得分:2)

16位数字?不,不是。最多可以准确表示53位整数,每个数字都可以表示为(53bit) * 2 ** (10bit)

此外,JavaScript中没有64位整数,只有64位浮点数(其中只有53位保留整数部分),而BigInts可以具有更多位。

  

JavaScript中的大量数字通常是近似值。

种类非常大的整数只能近似(或使用BigInts),但是即使是很小的非整数,例如0.1也不能精确表示。

  

例如,始终可以准确地表示123455.373849

不,可能不是。

  

但数字可能不是9,007,199,254,740,991,293。

是的,那远远超出了2 ** 53-1。