input 使用v-model 传值后小数不精确

回答

原因分析:js在进行浮点型数值的运算的时候会出现不精确的现象,计算机进行二进制和十进制转换的过程中不精确;

例如:

0.1+0.2 = 0.30000000000000004;

2.4/0.8 = 2.9999999999999996;

解决办法:
1、直接使用toFixed

var num = 0.1+0.2;

var n=num.toFixed(2);

2、
先将数字转换为整数,再做其他运算,就是乘以10的n次方;
//项目中用到的利率转换过程,rate为利率变量

var zeroLast = (rate + '').split('.')[1],

var borrowRate = !!zeroLast ? Math.pow(10,zeroLast.length) : rate;

检查一下是否有进行运算,我觉得是js的精度问题。

后台传过来的值是多少?1.81999999之前

js的数值转换精度是个老生常谈的问题了, 网上有很多fix的方法, 可以搜一下

以上是 input 使用v-model 传值后小数不精确 的全部内容, 来源链接: utcz.com/a/32979.html

回到顶部