Maison >interface Web >js tutoriel >Diverses méthodes pour conserver deux décimales dans les compétences javascript_javascript

Diverses méthodes pour conserver deux décimales dans les compétences javascript_javascript

WBOY
WBOYoriginal
2016-05-16 15:25:042282parcourir

La première méthode : implémentation javascript d'un exemple de code de remplissage automatique par zéro avec deux décimales et une place :
La première méthode explique comment obtenir l'effet de conserver deux décimales pour les nombres. Si le nombre original de décimales est inférieur à deux, alors les chiffres manquants seront automatiquement remplis de zéros. le but de l'uniformité. Tout d'abord, voir l'exemple de code :

function returnFloat(value){
 var value=Math.round(parseFloat(value)*100)/100;
 var xsd=value.toString().split(".");
 if(xsd.length==1){
 value=value.toString()+".00";
 return value;
 }
 if(xsd.length>1){
 if(xsd[1].length<2){
  value=value.toString()+"0";
 }
 return value;
 }
}
var num=3.1;
console.log(returnFloat(num));

Le code ci-dessus répond à nos exigences. Voici une introduction à son processus de mise en œuvre.
Commentaires du code :
1.fonction returnFloat(value){}, le paramètre est le nombre à convertir.
2.var value=Math.round(parseFloat(value)*100)/100, Cela devrait être le cœur de la fonction, parseFloat(value) convertit le paramètre en un nombre à virgule flottante, car le paramètre peut être La chaîne est multipliée par 100 car deux décimales doivent être conservées. Tout d'abord, déplacez la virgule décimale de deux chiffres vers la droite, puis utilisez la méthode Math.round() pour effectuer des calculs d'arrondi, et enfin divisez par 100. Vous obtenez ainsi. le but de conserver deux décimales, et a également un effet d'arrondi, mais ce n'est pas parfait si le nombre de décimales dans le paramètre numéro lui-même est supérieur ou égal à 2, c'est OK, comme 3,1415. , mais il n'y a toujours pas d'implémentation parfaite telle que 3 ou 3.0. Continuez à voir ci-dessous.
3.var xsd=value.toString().split("."), utilisez la valeur du point "." pour le séparer en un tableau.
4.if(xsd.length==1){value=value.toString() ".00";return value;}, si la longueur du tableau est 1, c'est-à-dire qu'il n'y a pas de décimale, alors ceci le nombre sera ajouté. Deux zéros, tels que 3, seront convertis en 3,00.
5.

if(xsd.length>1){
 if(xsd[1].length<2){
  value=value.toString()+"0";
 }
 return value;
 }

if(xsd.length>1) est utilisé pour déterminer si la longueur du nombre est supérieure à 1, c'est-à-dire si le nombre a une décimale S'il y a une décimale, mais que le nombre de chiffres décimaux est inférieur. que 2, qui est similaire à 3.1, il sera en ajoutant un 0 après l'avoir converti en 3.10.

Deuxième méthode : Résumer plusieurs méthodes de fonctions en JS qui formatent les données avec deux décimales

La meilleure façon :

On dirait que c'est comme ça que garder deux personnes

 var a = 9.39393; 
 alert(a.toFixed(2));

Instructions :

alerte(Number.toFixed(9.39393));
Le retour est 9h39
Mais il n'est pris en charge que par les versions supérieures à IE5.5.

Autres méthodes :

Méthode 1 :

 function roundFun(numberRound,roundDigit) //四舍五入,保留位数为roundDigit  
 { 
 if (numberRound>=0) 
 { 
 var tempNumber = parseInt((numberRound * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit); 
 return tempNumber; 
 } 
 else  
 { 
 numberRound1=-numberRound 
 var tempNumber = parseInt((numberRound1 * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit); 
 return -tempNumber; 
 } 
   } 

Méthode 2 :

<script> 
 tmp = "1234567.57232" 
 result = tmp.substr(0,tmp.indexOf(".")+3); 
 alert(result); 
 </script> 

La troisième méthode : javascript conserve le code à deux décimales

<script type="text/javascript"> 
  //保留两位小数 
  //功能:将浮点数四舍五入,取小数点后2位 
  function toDecimal(x) { 
   var f = parseFloat(x); 
   if (isNaN(f)) { 
    return; 
   } 
   f = Math.round(x*100)/100; 
   return f; 
  } 
 
 
  //制保留2位小数,如:2,会在2后面补上00.即2.00 
  function toDecimal2(x) { 
   var f = parseFloat(x); 
   if (isNaN(f)) { 
    return false; 
   } 
   var f = Math.round(x*100)/100; 
   var s = f.toString(); 
   var rs = s.indexOf('.'); 
   if (rs < 0) { 
    rs = s.length; 
    s += '.'; 
   } 
   while (s.length <= rs + 2) { 
    s += '0'; 
   } 
   return s; 
  } 
   
  function fomatFloat(src,pos){  
    return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);  
  } 
  //四舍五入 
  alert("保留2位小数:" + toDecimal(3.14159267)); 
  alert("强制保留2位小数:" + toDecimal2(3.14159267)); 
  alert("保留2位小数:" + toDecimal(3.14559267)); 
  alert("强制保留2位小数:" + toDecimal2(3.15159267)); 
  alert("保留2位小数:" + fomatFloat(3.14559267, 2)); 
  alert("保留1位小数:" + fomatFloat(3.15159267, 1)); 
   
  //五舍六入 
  alert("保留2位小数:" + 1000.003.toFixed(2)); 
  alert("保留1位小数:" + 1000.08.toFixed(1)); 
  alert("保留1位小数:" + 1000.04.toFixed(1)); 
  alert("保留1位小数:" + 1000.05.toFixed(1)); 
   
  //科学计数 
  alert(3.1415.toExponential(2)); 
  alert(3.1455.toExponential(2)); 
  alert(3.1445.toExponential(2)); 
  alert(3.1465.toExponential(2)); 
  alert(3.1665.toExponential(1)); 
  //精确到n位,不含n位 
  alert("精确到小数点第2位" + 3.1415.toPrecision(2)); 
  alert("精确到小数点第3位" + 3.1465.toPrecision(3)); 
  alert("精确到小数点第2位" + 3.1415.toPrecision(2)); 
  alert("精确到小数点第2位" + 3.1455.toPrecision(2)); 
  alert("精确到小数点第5位" + 3.141592679287.toPrecision(5)); 
 </script> 

Les méthodes ci-dessus permettent de conserver deux décimales en JavaScript. J'espère que cela sera utile à l'apprentissage de chacun.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn