返回

IEEE 754 标准下的 JavaScript 数字

前端

JavaScript 中的数字

JavaScript 中的数字类型是 Number,它可以表示整数和小数。Number 类型是 IEEE 754 标准的 64 位双精度浮点数,这是一种广泛用于计算机科学中的数字表示格式。

IEEE 754 标准

IEEE 754 标准定义了浮点数的表示方式,它使用二进制来表示数字,并将其分为三个部分:符号位、指数位和尾数。

  • 符号位:表示数字的正负。0 表示正数,1 表示负数。
  • 指数位:表示数字的阶数。指数位的值可以是正数或负数,正数表示数字的阶数较大,负数表示数字的阶数较小。
  • 尾数:表示数字的小数部分。尾数的值是一个二进制小数,它可以是 0 或 1,也可以是介于 0 和 1 之间的任何值。

数字范围

JavaScript 中的数字范围为 -2^53 到 2^53(包括边界值)。这意味着 JavaScript 可以表示的最小正数是 2^-53,最大的正数是 2^53-1。JavaScript 也可以表示负数,最小负数是 -2^53,最大负数是 -2^53+1。

精度

JavaScript 中的数字精度为 53 位。这意味着 JavaScript 可以精确地表示 53 位二进制小数。对于超过 53 位二进制小数的数字,JavaScript 会进行舍入。

舍入规则

JavaScript 使用以下舍入规则来对超过 53 位二进制小数的数字进行舍入:

  • 如果尾数的最后一位是 0,则舍入到最接近的偶数。
  • 如果尾数的最后一位是 1,则舍入到最接近的奇数。
  • 如果尾数的最后一位是 5,则舍入到最接近的偶数。

特殊值

JavaScript 中有三个特殊值:NaN、Infinity 和 -Infinity。

  • NaN(Not a Number):表示一个不是数字的值。NaN 可以通过将一个非数字值赋给 Number 变量来生成。
  • Infinity:表示正无穷大。Infinity 可以通过将一个大于 2^53-1 的值赋给 Number 变量来生成。
  • -Infinity:表示负无穷大。-Infinity 可以通过将一个小于 -2^53 的值赋给 Number 变量来生成。

总结

JavaScript 中的数字类型是 Number,它可以表示整数和小数。Number 类型是 IEEE 754 标准的 64 位双精度浮点数。JavaScript 中的数字范围为 -2^53 到 2^53(包括边界值)。JavaScript 中的数字精度为 53 位。JavaScript 使用以下舍入规则来对超过 53 位二进制小数的数字进行舍入:如果尾数的最后一位是 0,则舍入到最接近的偶数。如果尾数的最后一位是 1,则舍入到最接近的奇数。如果尾数的最后一位是 5,则舍入到最接近的偶数。JavaScript 中有三个特殊值:NaN、Infinity 和 -Infinity。