Heim > Fragen und Antworten > Hauptteil
Ich hoffe, eine Zahl auf zwei Dezimalstellen zu beschränken, runden Sie sie ab
Ich habe versucht, die toFixed-Funktion zu verwenden, und ihr Inhalt ist korrekt, aber sie gibt eine Zeichenfolge zurück. Wenn ich beispielsweise Number(1.00) explizit konvertiere, wird sie zu 1.
Wie erhalte ich also eine Zahl mit zwei Dezimalstellen und der Rückgabetyp ist eine Zahl?
ringa_lee2017-05-19 10:14:54
首先,toFixed方法本身是有bug的,其次,js中Number的结构中不包含精度,如果你需要包含精度的数字,自己写一个类就可以
仅有的幸福2017-05-19 10:14:54
var num=1.256;
Math.floor(Math.round(num*100))/100;
可以封装成方法:
function unitNormalization(arr,digit){
/*单位规整*/
var digit=digit||0;
var prence=Math.pow(10,digit);
if(Array.isArray(arr)){
var backArr=[];
for(var i=0;i<arr.length;i++){
backArr.push(Math.rou(Math.round(arr[i]*prence))/prence);
}
return backArr;
}else{
var num=Math.floor(Math.round(arr*prence))/prence;
return num
}
}
unitNormalization(1.253,2)//1.25
unitNormalization(1.257,2)//1.26