2 回答
TA贡献1856条经验 获得超11个赞
function demo (num) {
num = (num.toString()).match(/(\d+\.\d{0,2})|(\d+)/)[0];
if(!/\./.test(num)) {
num = num + '.00';
}else if(/\.\d{1}$/.test(num)){
num = num + '0';
}
return num;
}
console.log(demo(6)) //6.00
console.log(demo(6.0)) //6.00
console.log(demo(6.1)) //6.10
console.log(demo(6.21)) //6.21
console.log(demo(6.333)) //6.33
console.log(demo(0)) //0.00
console.log(demo(0.1)) //0.10
console.log(demo(0.01)) //0.01
console.log(demo(0.001)) //0.00
TA贡献1803条经验 获得超6个赞
你的意思是当有小数点的时候保留2位,没有的时候就不要显示有小数点?如果是这样的话可以试试这个:
var a = 9;
var b = 9.258;
function demo(num) {
var reg = /\./g; //查看是否存在小数点
if(reg.test(num)) { //若存在,则保留两位小数,倒是不用考虑是否用toFixed,因为这个挺好用的
return num.toFixed(2);
} else {//不存在,返回原值
return num;
}
}
console.log(demo(a)); //9
console.log(demo(b)); //9.26
添加回答
举报