js基础之数据类型Number

132 阅读1分钟

js根据IEEE754标准使用双精度浮点数(double float)表示数字number

存储方式

  • 符号位(1)+ 指数位(11)+ 尾数位(52)
  • 符号位0表示正1表示负 指数位表示指数部分 尾数位表示尾数部分

精度问题

  • 由于使用了浮点数 所以计算小数的时候有可能丢失精度(指数位)
  • 解决办法
    • 将等式两边小数位转为整数位
    • 使用第三方库比如Math.js
    • 使用Number.EPSILON来比较等式两边的差值的绝对值
    • 四舍五入

进制

十进制

  • 1 1. .1 1e3

二进制

  • 0b1

八进制

  • 0o7

16进制

  • 0xf

数字使用原型方法

  • 0 .toString() 或者 (0).toString() toFixed等都同理

安全整数范围

  • Number.MIN_SAFE_INTEGER ~ Number.MAX_SAFE_INTEGER (-2^53 到 2^53)

bigInt

  • 可以计算大数字不丢失精度