Heim  >  Artikel  >  Web-Frontend  >  Passen Sie das Dezimalformat an, um zwei Dezimalstellen beizubehalten. Javascript-Kenntnisse

Passen Sie das Dezimalformat an, um zwei Dezimalstellen beizubehalten. Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 16:48:161509Durchsuche

Während des Entwicklungsprozesses müssen wir häufig das Dezimalformat anpassen, z. B. zwei Dezimalstellen beibehalten usw. Die Methode ist auch recht verbreitet, das Memo lautet wie folgt.

Die erste Methode besteht darin, math.round zu verwenden

var original=28.453
1) //„original“ auf zwei Dezimalstellen runden
var result=Math.round(original * 100)/100; //gibt 28,45 zurück
2) // „Original“ auf 1 Dezimalzahl runden
var result=Math.round(original*10)/10; //gibt 28,5 zurück

Zweitens können js1.5 und höher toFixed(x) verwenden, das die Zahl angeben kann, die x Nachkommastellen abfangen soll

3) //„Original“ auf zwei Dezimalstellen runden
var result =original.toFixed( 2); //gibt 28,45 zurück

4) // rundet „original“ auf 1 Dezimalzahl
var result=original.toFixed(1); //gibt 28,5 zurück

Beide oben genannte Methode ist die allgemeinste, kann jedoch einige spezielle Anforderungen nicht erfüllen, z. B. die Beibehaltung von zwei Dezimalstellen. Wenn sie weniger als zwei Dezimalstellen beträgt, werden Nullen hinzugefügt, wenn sie weniger als zwei Dezimalstellen beträgt. An dieser Stelle gibt es eine dritte Methode.

Der dritte Typ ist die Konvertierungsfunktion. Dieser Code stammt aus einem fremden Forum.

Code kopieren Der Code lautet wie folgt:

Funktion RoundNumber(Zahl,Dezimalstellen) {
var newString;// Die neue gerundete Zahl
decimals = Number(decimals);
if (decimals < 1) {
newString = (Math.round(number)).toString();
} else {
var numString = number.toString();
if (numString.lastIndexOf(".") == -1) {// Wenn kein Dezimalpunkt vorhanden ist
numString = "." ;// gib eins am Ende
}
var cutoff = numString.lastIndexOf(".") decimals;// Der Punkt, an dem die Zahl abgeschnitten werden soll
var d1 = Number( numString.substring (cutoff,cutoff 1));// Der Wert der letzten Dezimalstelle, mit der wir enden werden
var d2 = Number(numString.substring(cutoff 1,cutoff 2));// Der nächste Dezimalstelle, nach der letzten wollen wir
if (d2 >= 5) {// Müssen wir überhaupt aufrunden? Wenn nicht, wird die Zeichenfolge einfach abgeschnitten
if (d1 == 9 && Cutoff > ; 0) {// Wenn die letzte Ziffer 9 ist, suchen Sie einen neuen Cutoff-Punkt
while (Cutoff > 0 && (d1 == 9 || isNaN(d1))) {
if ( d1 != ".") {
cutoff -= 1;
d1 = Number(numString.substring(cutoff,cutoff 1)); else {
cutoff -= 1; >}
}
}
d1 = 1;
}
if (d1 == 10) {
numString = numString.substring(0, numString.lastIndexOf("." ));
varroundNum=Number(numString) 1; toString() ;
}
}
if (newString.lastIndexOf(".") == -1) {// Wiederholen Sie dies für den neuen String
newString = ".";
}
var decs = (newString.substring(newString.lastIndexOf(".") 1)).length;
for(var i=0;i//var newNumber = Number(newString);// Machen Sie daraus eine Zahl, wenn Sie möchten
document.roundform.roundedfield.value = newString; // Das Ergebnis in das Formularfeld ausgeben (Änderung für Ihre Zwecke)
}


5) // „Original“ auf zwei Dezimalstellen runden
var result=original.toFixed(2); //gibt 28,45 zurück

6) // „Original“ auf 1 Dezimalzahl runden
var result=original.toFixed(1); //gibt 28,5 zurück

var original=28.4
var result=original.toFixed(2) ; // gibt 28,40 zurück
Stellungnahme:
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