今天看到同事写的金额字段,需要保留几位小数。
1.toFixed
是有问题的——整数通过toFixed
也会有小数存在
一般情况下,我都是会用'111'.toFixed(2)
来保留2位小数。
2.自己封装的函数处理——能实现功能
priceBlur(e) {
var val = e.target.value;
if (val) {
var index = val.indexOf('.');
if (index > -1) {
var arr = val.split('.');
var num = arr[1];
if (num.length > 6) {
return arr[0] + '.' + num.substr(0, 6);
} else {
return val;
}
} else {
return val;
}
}
},
这个是我之前自己封装的一个函数。是保留6位的,这个位数可以更改。
3.通过toLocaleString
方法来处理
Vue.filter('money', function (value, decimal = 2) {
if (!value) {
return 0;
}
const options = {
style: 'currency',
currency: 'CNY',
minimumFractionDigits: decimal
}
return value.toLocaleString('zh-CN', options)
})
控制台测试:
综上所述:方法2和方法3结果是一样的,但是优先采取方法3,这个是toLocaleString
的用法。
完成!!!