js浮点数运算精度丢失问题

精度丢失问题存在于浮点数转化为ieee754标准的二进制数的过程中

number类型

js中的number类型采用双精度浮点型,基于ieee754标准

进制表示

  • 二进制:0b或0B
  • 八进制:es5严格模式禁止使用,es6使用0o为前缀表示(0o777)
  • 十六进制:0X或0x
  • 十进制

进制转换

parseInt,toString

解决方案

  1. 使用toFixed限制精度
(0.1+0.2).toFixed(5)
toFixed四舍五入存在精度问题,
//  实际上,round,ceil,floor都存在该问题
2.335.toFixed(2)  // 2.33

解决方案:
Math.

你可能感兴趣的