超过4位截取保留4位,不足4位保留原位数不补0
- 保留4位小数
var number = 12.3321432;
number = String(number).replace(/^(.*\..{4}).*$/,"$1");
number = Number(number); // number = 12.3321
- 保留2位小数
var reg = /^(.*\..{2}).*$/;
var number2 = 12.3;
number2 = String(number2).replace(reg ,"$1");
number2 = Number(number2); // number2 = 12.3 不足保留位数不补0
超过4位截取保留4位,不足4位补足0
getFloat = function(number, n) {
n = n ? parseInt(n) : 0;
if(n <= 0) {
return Math.round(number);
}
number = Math.round(number * Math.pow(10, n)) / Math.pow(10, n); //四舍五入
number = Number(number).toFixed(n); //补足位数
return number;
};
console.log(getFloat('0', 4)); //0.0000
console.log(getFloat('2.08', 4)); //2.0800
console.log(getFloat('2.08500', 4)); //2.0850
console.log(getFloat('2.08996', 4)); //2.0900
console.log(getFloat('2.08994', 4)); //2.0899
toFixed()方法
var a =123.456789;
alert(a.toFixed(4));// 四舍五入保留四位小数
var num1 = (5/3).toFixed(2); // 1.67
var num2 = (4).toFixed(2); // 4.00
var num3 = (0.015).toFixed(2); // 0.01
var num4 = (0.025).toFixed(2); // 0.03
需注意,保留两位小数,将数值类型的数据改变成了字符串类型
Math.floor()向下取整
let numBoolean = Math.floor((this.editFormData.amount / this.thresholdYuan) * 10000) / 10000 >= 0.005
自定义方法进行取整
//保留n位小数
function roundFun(value, n) {
return Math.round(value*Math.pow(10,n))/Math.pow(10,n);
}
var num1 = roundFun(5/3, 2); // 1.67
var num2 = roundFun(4, 2); // 4
var num3 = roundFun(0.015, 2); // 0.02
var num4 = roundFun(0.025, 2); // 0.03
//保留n位小数并格式化输出(不足的部分补0)
var fomatFloat = function(value, n) {
var f = Math.round(value*Math.pow(10,n))/Math.pow(10,n);
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
s += '.';
}
for(var i = s.length - s.indexOf('.'); i <= n; i++){
s += "0";
}
return s;
}
var num1 = fomatFloat(5/3, 2); // 1.67
var num2 = fomatFloat(4, 2); // 4.00
var num3 = fomatFloat(0.015, 2); // 0.02
var num4 = fomatFloat(0.025, 2); // 0.03