场景:
- 通过后端接口获取的数据为浮点数(例如:0.0505),前端经过乘法计算(0.0505*100)后显示到页面为5.050000000001
- PS:类似于经典面试问题(0.1+0.2 === 0.3 // false)
问题出现原因:
- 计算机二进制计算问题
解决方案:
- Math.round():弊端:直接四舍五入,显示体验不好
- toFixed(): 展示精度明确的情况下
- 推荐:单纯的将获取的后端数据加减乘除后显示
推荐解决方法:
- 使用该函数后:strip(0.0505*100) === 5.05