0.1+0.2 != 0.3

  • 为什么不等于 因为计算机不能精确表示0.1 0.2这样的浮点数,计算使用的是有舍入误差的数
  • 并不是所有浮点数在计算机内部都存在舍入误差 比如0.5就没有
  • 具有舍入误差的运算一定与期望不符吗 不一定,负负得正
  • 怎么解决?方式一:使用整型代替浮点数计算;方式二:不要直接比较两个浮点数,可以使用bignumber.js这样的浮点数运算库