关于浮点数数字精度丢失问题解决方案

225 阅读1分钟

BingWallpaper-1.jpg

场景:

  • 通过后端接口获取的数据为浮点数(例如:0.0505),前端经过乘法计算(0.0505*100)后显示到页面为5.050000000001
  • PS:类似于经典面试问题(0.1+0.2 === 0.3 // false)

问题出现原因:

  • 计算机二进制计算问题

解决方案:

  • Math.round():弊端:直接四舍五入,显示体验不好
  • toFixed(): 展示精度明确的情况下
  • 推荐:单纯的将获取的后端数据加减乘除后显示

推荐解决方法:

image.png

  • 使用该函数后:strip(0.0505*100) === 5.05