需求:想要保留两位小数,且四舍五入
问题:在一次支付中,面值1元,折扣8.25折,提交订单一直出错,才发现是toFixed的锅,按理说我应该支付0.83,但是如图
toFixed是四舍六入
解决:
//修改toFixed精度不准确
myFixed(target,length) {
var str = target + ''; //将调用该方法的数字转为字符串
var dot = str.indexOf("."); //找到小数点的位置
var decimal = str.split(".")[1];
if(dot!=-1){
if(decimal.length === length) return str;
if(decimal.length <= length){//小数位少于补零
let n = "";
for (let i=0; i<length-decimal.length; i++){
n += "0";
}
return str+n;
}else{//小数位多于做四舍五入
if(Number(decimal[length])>=5){
let s=parseInt(