Während des Entwicklungsprozesses stoßen wir häufig auf Formate, die angepasst werden müssen, z. B. die beiden Dezimalstellen nach dem Dezimalpunkt usw. Die Methode ist ebenfalls weit verbreitet. Beachten Sie bitte Folgendes.
Der erste ist die Verwendung von Mathematik.
var original = 28,453
1) // rund "Original" zu zwei Dezimalstellen
var result = math.round (original*100)/100; // kehrt 28.45 zurück
2) // rund "Original" bis 1 Dezimal
var result = Math.Round (Original*10)/10; // kehrt 28.5 zurück
Der zweite Typ, JS1.5 oder höher, kann toFixed (x) verwenden, um die Nummer anzugeben, um die X -Position nach dem Dezimalpunkt abzufangen.
3) // rund "Original" zu zwei Dezimalstellen
var result = original.tofixed (2); // kehrt 28.45 zurück
4) // rund "Original" bis 1 Dezimal
var result = original.tofixed (1); // kehrt 28.5 zurück
Die beiden oben genannten Methoden sind die häufigsten, aber sie können bestimmte besondere Anforderungen nicht erfüllen. Zum Beispiel die beiden Dezimalstellen nach dem Dezimalpunkt beibehalten. Wenn Sie weniger als zwei Ziffern sind, werden Sie Nullen wiederholen. Zu diesem Zeitpunkt gibt es eine dritte Methode.
Der dritte Typ ist die Konvertierungsfunktion. Dieser Code stammt aus einem fremden Forum.
Die Codekopie lautet wie folgt:
Funktion Roundnumber (Nummer, Dezimalstellen) {
var NewString; // die neue abgerundete Nummer
Dezimalstellen = Zahl (Dezimalstellen);
if (Dezimalstellen <1) {
NewString = (math.round (numme)). toString ();
} anders {
var numstring = number.toString ();
if (numstring.lastindexof (".") == -1) {// wenn es keinen Dezimalpunkt gibt
Numstring += "."; // Gib es am Ende einen
}
var cutoff = numstring.lastindexof (")) + Dezimalstellen; // der Punkt, an dem die Zahl abgeschnitten werden kann
var d1 = nummer (numstring.substring (cutoff, cutoff+1)); // Der Wert des letzten Dezimalplatzes, mit dem wir enden werden
var d2 = nummer (numstring.substring (cutoff+1, cutoff+2)); // die nächste Dezimalzahl nach dem letzten, den wir wollen
if (d2> = 5) {// Müssen wir uns überhaupt zusammenschließen? Wenn nicht, wird die Zeichenfolge nur abgeschnitten
if (d1 == 9 && cutoff> 0) {// Wenn die letzte Ziffer 9 ist, finden Sie einen neuen Cutoff -Punkt
while (cutoff> 0 && (d1 == 9 || isnan (d1))) {
if (d1! = ".") {
Cutoff -= 1;
d1 = nummer (numstring.substring (cutoff, cutoff+1));
} anders {
Cutoff -= 1;
}
}
}
D1 += 1;
}
if (d1 == 10) {
numstring = numstring.substring (0, numstring.lastindexof ("."));
var rundednum = nummer (numstring) + 1;
NewString = RoundedNum.ToString () + '.';
} anders {
NewString = numstring.substring (0, Cutoff) + d1.toString ();
}
}
if (newSting.lastindexof (".") == -1) {// Tun Sie dies erneut in die neue Zeichenfolge
NewString += ".";
}
var decs = (NewString.substring (NewString.LastIndexof (".")+1)). Länge;
für (var i = 0; i <decimals-Decs; i ++) Newstring+= "0";
// var newnumber = number (Newstring); // Machen Sie es zu einer Nummer, wenn Sie möchten
document.roundForm.Roundfield.Value = NewString; // Das Ergebnis in das Formularfeld ausgeben (für Ihre Zwecke ändern)
}
5) // rund "Original" zu zwei Dezimalstellen
var result = original.tofixed (2); // kehrt 28.45 zurück
6) // rund "Original" bis 1 Dezimal
var result = original.tofixed (1); // kehrt 28.5 zurück
var original = 28,4
var result = original.tofixed (2); // kehrt 28.40 zurück