Maison > Questions et réponses > le corps du texte
J'espère garder un nombre à deux décimales. S'il y a des décimales, arrondissez-les. Sinon, remplissez 0.
Par exemple
1=》1.00
1.234=》1.23
1.256=》1.26
J'ai essayé d'utiliser la fonction toFixed et son contenu est correct, mais elle renvoie une chaîne. Par exemple, 1,00 est une chaîne Lorsque je convertis explicitement Number(1.00), elle devient 1.
Alors, comment puis-je obtenir un nombre avec deux décimales et le type de retour est un nombre ?
淡淡烟草味2017-05-19 10:14:54
Je suppose que s'il est utilisé pour l'affichage de la page, alors les chaînes n'ont pas d'importance, n'est-ce pas ? S'il est utilisé pour le fonctionnement, cela n'a pas d'importance même s'il vaut 1 (et non 1,00), n'est-ce pas ?
某草草2017-05-19 10:14:54
1.00 Ce format ne peut être enregistré que sous forme de chaîne et ne peut pas être enregistré sous forme numérique.
Peu importe ce que vous faites, si vous souhaitez afficher quelque chose comme 1,00, vous ne pouvez utiliser que des chaînes.
ringa_lee2017-05-19 10:14:54
Tout d'abord, la méthode toFixed elle-même est boguée. Deuxièmement, la structure Number en js ne contient pas de précision. Si vous avez besoin d'un nombre contenant de la précision, écrivez simplement une classe vous-même.
仅有的幸福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