今天給大家推薦幾個(gè)親測(cè)好用的截取小數(shù)點(diǎn)后幾位數(shù)字的方法:
法一:Math.round法愤惰,保留兩位小數(shù)
// round() 方法可把一個(gè)數(shù)字舍入為最接近的整數(shù)采驻。
function math(){
var num = 23.456322;
console.log('數(shù)學(xué)方法');
console.log(Math.round(num*100)/100);
}
math();
法二:toFixed方法進(jìn)行四舍五入,強(qiáng)制保留兩位小數(shù)单绑,不夠補(bǔ)0
// IE5.5+才支持
function fixed(){
var num = 23.456322;
console.log('用toFixed方法進(jìn)行四舍五入,強(qiáng)制保留兩位小數(shù),不夠補(bǔ)0');
console.log(num.toFixed(2));
}
fixed();
法三:不推薦埋嵌,但也記錄一下吧
// 最笨的辦法
function get(){
num = 23.456322 + '';
var str = num.substring(0,num.indexOf(".") + 3);
console.log('直接截取小數(shù)點(diǎn)后兩位囊拜,不做四舍五入');
console.log(str);
}
get();
代碼實(shí)例:
功能:將浮點(diǎn)數(shù)四舍五入钢坦,取小數(shù)點(diǎn)后2位
function toDecimal(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return;
}
f = Math.round(x*100)/100;
return f;
}
console.log(toDecimal(num));
功能:四舍五入,隨意保留幾位小數(shù)
function fomatFloat(num,pos){
// Math.pow(x,y) x 的 y 次冪
return Math.round(num*Math.pow(10, pos))/Math.pow(10, pos);
}
console.log("保留1位小數(shù):" + fomatFloat(3.14559267, 1))
補(bǔ)充:input輸入限制為小數(shù)點(diǎn)后兩位
/**
* input輸入保留兩位小數(shù)
*/
function clearNoNum(obj){
// obj.value = obj.value.replace(/[^0-9-]+/,''); js寫法
obj.val(obj.val().replace(/[^\d.]/g,"")); //清除“數(shù)字”和“.”以外的字符
obj.val(obj.val().replace(/\.{2,}/g,".")); //只保留第一個(gè). 清除多余的
obj.val(obj.val().replace(".","$#$").replace(/\./g,"").replace("$#$","."));
obj.val(obj.val().replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')); //只能輸入兩個(gè)小數(shù)
if(obj.val().indexOf(".")< 0 && obj.val() !=""){//以上已經(jīng)過濾啥酱,此處控制的是如果沒有小數(shù)點(diǎn)爹凹,首位不能為類似于 01、02的金額
obj.val(parseFloat(obj.val()));
}
}