问题描述
需要使用js将后台返回的小数转换成百分比,我当时是直接在js里将这个数值*100,但是结果却有问题。
如图:
我试过0.48显示没有问题,但是0.55以及之后的数值却有问题,
如图:
求问,我该怎么让这些数值正常显示。
需要使用js将后台返回的小数转换成百分比,我当时是直接在js里将这个数值*100,但是结果却有问题。
如图:
我试过0.48显示没有问题,但是0.55以及之后的数值却有问题,
如图:
求问,我该怎么让这些数值正常显示。
计算机编程语言里浮点数计算会存在精度丢失问题(或称舍入误差),其根本原因是二进制和实现位数限制有些数无法有限表示
以下是十进制小数对应的二进制表示
0.1 >> 0.0001 1001 1001 1001…(1001无限循环)
0.2 >> 0.0011 0011 0011 0011…(0011无限循环)
计算机里每种数据类型的存储是一个有限宽度,比如 JavaScript 使用 64 位存储数字类型,因此超出的会舍去。舍去的部分就是精度丢失的部分。
一般将其换成对应的整数在进行运算。
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
先调用js乘法精度方法,toFixed个人感觉不可取,数据有0.54567这种就不准确了。