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.
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