关于js字符串类型直接进行计算后显示小数点后多位,前端显示精度的问题
JS 数字类型只有number类型,number类型相当于其他强类型语言中的double类型(双精度浮点型),不区分浮点型和整数型。
以下是后端返回给我的数据
{ name: "固定比例" value: "0.14" }
我在代码中为了实现百分比而进行了以下运算
{c.value * 100}%
但是最后显示的结果为14.000000000000000002%
原因是在进行‘0.14’*100计算时,
计算机中的数字都是以二进制存储的,二进制浮点数表示法并不能精确的表示类似0.14这样 的简单的数字
如果要计算 0.14 * 100 的结果,计算机会先把 0.14 和 100 分别转化成二进制,然后相加,最后再把得到的结果转为十进制
但有一些浮点数在转化为二进制时,会出现无限循环 ,比如0.14这个数字,效果如下

怎么解决呢?
1.原生方法:Number.toFixed()

2.第三方封装类库,math库
math.config({ number: 'BigNumber', precision: 20 }); let num= math.bignumber(a) * math.bignumber(b) console.log(math.number(num))
这里只是初步记录,方法并不多

浙公网安备 33010602011771号