学习js的都知道,在js里0.1+0.2 != 0.3;而这种情况不只是存在于加法里,乘法里同样存在这种问题。所以只能使用.toFixed()控制小数点后位数来解决这个问题。但是由于有可能会存在0.15+0.15 = 0.30的情况(部分公司产品和客户会介意0.30比0.3多了一个0)。所以封装了一下方法。
//value--数值 dotNum--保留几位小数 function dotNumber(value,dotNum){ let f_x = parseFloat(value); if(isNaN(f_x)){ return 0; } let isDot = f_x.toString().indexOf('.'); if(isDot > -1){ f_x = f_x.toFixed(dotNum); let arr = f_x.toString().split('.'); arr[0] += '.'; for(let j = dotNum - 1;j >= 0; j--){ if(arr[1][j] == 0){ arr[1].slice(0,-1); }else{ break; } } for(let i = 0;i < arr[1].length;i++){ arr[0] += arr[1][i]; } return arr[0]; }else{ return f_x; } }