问题描述需要使用js将后台返回的小数转换成百分比,我当时是直接在js里将这个数值*100,但是结果却有问题。如图:我试过0.48显示没有问题,但是0.55以及之后的数值却有问题,如图:求问,我该怎么让这些数值正常显示。
1 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
计算机编程语言里浮点数计算会存在精度丢失问题(或称舍入误差),其根本原因是二进制和实现位数限制有些数无法有限表示
以下是十进制小数对应的二进制表示
0.1 >> 0.0001 1001 1001 1001…(1001无限循环) 0.2 >> 0.0011 0011 0011 0011…(0011无限循环)
计算机里每种数据类型的存储是一个有限宽度,比如 JavaScript 使用 64 位存储数字类型,因此超出的会舍去。舍去的部分就是精度丢失的部分。
一般将其换成对应的整数在进行运算。
- 1 回答
- 0 关注
- 1370 浏览
添加回答
举报
0/150
提交
取消