Heim > Web-Frontend > js-Tutorial > Hauptteil

Verschiedene Methoden zur Beibehaltung von zwei Dezimalstellen in javascript_javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:25:04
Original
2237 Leute haben es durchsucht

Die erste Methode: Javascript-Implementierung eines automatischen Nullauffüll-Codebeispiels mit zwei Dezimalstellen und einer Stelle:
Die erste Methode stellt vor, wie man den Effekt erzielt, zwei Dezimalstellen für Zahlen beizubehalten. Wenn die ursprüngliche Anzahl der Dezimalstellen weniger als zwei beträgt, werden die fehlenden Stellen automatisch mit Nullen aufgefüllt Der Zweck der Einheitlichkeit. Siehe Codebeispiel:

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));
Nach dem Login kopieren

Der obige Code erfüllt unsere Anforderungen. Hier finden Sie eine Einführung in seinen Implementierungsprozess.
Codekommentare:
1.Funktion returnFloat(value){}, der Parameter ist die umzuwandelnde Zahl.
2.var value=Math.round(parseFloat(value)*100)/100, Dies sollte der Kern der Funktion sein, parseFloat(value) konvertiert den Parameter in eine Gleitkommazahl, da der Parameter Möglicherweise wird die Zeichenfolge mit 100 multipliziert, da zwei Dezimalstellen beibehalten werden müssen. Verschieben Sie zunächst den Dezimalpunkt um zwei Stellen nach rechts, führen Sie dann Rundungsberechnungen mit der Methode Math.round () durch und dividieren Sie schließlich durch 100. Dies wird erreicht Der Zweck besteht darin, zwei Dezimalstellen beizubehalten, und hat auch einen Rundungseffekt. Dies ist jedoch nicht perfekt. Wenn die Anzahl der Dezimalstellen in der Parameterzahl selbst größer oder gleich 2 ist, ist dies in Ordnung, z. B. 3,1415 , aber es gibt immer noch keine perfekte Implementierung wie 3 oder 3.0. Siehe weiter unten.
3.var xsd=value.toString().split("."), verwenden Sie den Punktwert ".", um ihn in ein Array aufzuteilen.
4.if(xsd.length==1){value=value.toString() ".00";return value;}, wenn die Länge des Arrays 1 ist, also keine Dezimalstelle vorhanden ist, dann dies Zahl wird hinzugefügt. Zwei Nullen, z. B. 3, werden in 3,00 umgewandelt.
5.

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

if(xsd.length>1) wird verwendet, um zu bestimmen, ob die Länge der Zahl größer als 1 ist, das heißt, ob die Zahl eine Dezimalstelle hat, aber die Anzahl der Dezimalstellen kleiner ist als 2, was 3.1 ähnelt, wird es in 3.10 umgewandelt, indem eine 0 hinzugefügt wird.

Zweite Methode: Fassen Sie mehrere Methoden von Funktionen in JS zusammen, die Daten mit zwei Dezimalstellen formatieren

Der beste Weg:

Es scheint, als ob man auf diese Weise zwei Menschen behalten kann

 var a = 9.39393; 
 alert(a.toFixed(2));
Nach dem Login kopieren

Anleitung:

alert(Number.toFixed(9.39393));
Die Rendite beträgt 9,39
Es wird jedoch nur von Versionen über IE5.5 unterstützt.

Andere Methoden:

Methode 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; 
 } 
   } 
Nach dem Login kopieren

Methode 2:

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

Die dritte Methode: Javascript behält den Code mit zwei Dezimalstellen bei

<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> 
Nach dem Login kopieren

Die oben genannten Methoden zur Beibehaltung von zwei Dezimalstellen in JavaScript werden hoffentlich für das Lernen aller hilfreich sein.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage