关于toFixed()保留两位小数--四舍五入不精确 问题解决

近期用到小数点保留两位 使用toFixed() 发现不太精确

例如10.125 保留两位后 为10.13

但使用 var num = 10.125; num.toFixed(2) 返回的结果为10.12 经测试发现大于5会进1 等于5并不会进1

解决办法 写个公共方法 需要时候 调用即可

示例:
在这里插入图片描述
根据自己需要酌情处理:我是写在main.js中,仅供参考:

Vue.prototype.fixed = function (num) {
	var times = Math.pow(10, 2);
	var des = num * times + 0.5;
	des = parseInt(des, 10) / times;
	return des + '';
}

在页面如何调用呢?
HTML中直接fixed方法调用即可:

 <el-table-column prop="price" label="单价" width="150">
     <template slot-scope="scope">
         <span>{{ fixed(scope.row.price * 1) }}</span>
       </template>
 </el-table-column>

js中需要使用this.fixed来调用:

 for (let i = 0; i < this.multipleSelection.length; i++) {
    allprice +=this.multipleSelection[i].price * this.multipleSelection[i].apply_count;
  }
    allprice = this.fixed(allprice * 1);

猜你喜欢

转载自blog.csdn.net/hong521520/article/details/106763960