620 Stimmen

Wie rundet man in Javascript auf 1 Dezimalstelle?

Können Sie eine Zahl in Javascript auf 1 Zeichen nach dem Dezimalpunkt (richtig gerundet) runden?

Ich habe es mit *10, round, /10 versucht, aber es bleiben zwei Dezimalstellen am Ende der int.

18 Stimmen

Math.round(n * 10) / 10 funktioniert. Wie lautet Ihr Code?

0 Stimmen

4voto

E.Z. Punkte 51

Verwendung der Methode toPrecision:

var a = 1.2345
a.toPrecision(2)

// result "1.2"

4voto

klodoma Punkte 3743

Zur Vervollständigung der Besten Antwort:

var round = function ( number, precision )
{
    precision = precision || 0;
    return parseFloat( parseFloat( number ).toFixed( precision ) );
}

Der Eingabeparameter Nummer darf "nicht" immer eine Zahl sein, in diesem Fall existiert .toFixed nicht.

3voto

jagbandhuster Punkte 667

Wenn Ihre Methode nicht funktioniert, posten Sie bitte Ihren Code.

Sie könnten jedoch die Abrundungsaufgabe wie folgt lösen:

var value = Math.round(234.567*100)/100

Sie erhalten 234,56

Ähnlich

 var value = Math.round(234.567*10)/10

Gibt 234,5

Auf diese Weise können Sie eine Variable anstelle der oben verwendeten Konstante verwenden.

3voto

Koustav Ray Punkte 1065

ES 6 Version der akzeptierten Antwort:

function round(value, precision) {
    const multiplier = 10 ** (precision || 0);
    return Math.round(value * multiplier) / multiplier;
}

3voto

Alberto Punkte 1293

Ich habe eine erstellt, die den Zahlentyp zurückgibt und auch Dezimalstellen nur dann setzt, wenn sie benötigt werden (kein 0-Padding).

Beispiele:

roundWithMaxPrecision(11.234, 2); //11.23
roundWithMaxPrecision(11.234, 1); //11.2
roundWithMaxPrecision(11.234, 4); //11.23
roundWithMaxPrecision(11.234, -1); //10

roundWithMaxPrecision(4.2, 2); //4.2
roundWithMaxPrecision(4.88, 1); //4.9

Der Code:

function roundWithMaxPrecision (n, precision) {
    const precisionWithPow10 = Math.pow(10, precision);
    return Math.round(n * precisionWithPow10) / precisionWithPow10;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X