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.
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.
Math.round(num * 10) / 10
funktioniert, hier ist ein Beispiel...
var number = 12.3456789
var rounded = Math.round(number * 10) / 10
// rounded is 12.3
wenn Sie wollen, dass es eine Dezimalstelle hat, auch wenn das eine 0 wäre, dann fügen Sie...
var fixed = rounded.toFixed(1)
// fixed is always to 1 d.p.
// NOTE: .toFixed() returns a string!
// To convert back to number format
parseFloat(number.toFixed(2))
// 12.34
// but that will not retain any trailing zeros
// So, just make sure it is the last step before output,
// and use a number format during calculations!
Unter Anwendung dieses Prinzips finden Sie hier eine praktische kleine Rundungsfunktion, die die Genauigkeit...
function round(value, precision) {
var multiplier = Math.pow(10, precision || 0);
return Math.round(value * multiplier) / multiplier;
}
... Verwendung ...
round(12345.6789, 2) // 12345.68
round(12345.6789, 1) // 12345.7
... rundet standardmäßig auf die nächste ganze Zahl (Genauigkeit 0) ...
round(12345.6789) // 12346
... und kann zum Runden auf die nächsten 10 oder 100 usw. verwendet werden...
round(12345.6789, -1) // 12350
round(12345.6789, -2) // 12300
... und korrekter Umgang mit negativen Zahlen ...
round(-123.45, 1) // -123.4
round(123.45, 1) // 123.5
... und kann mit toFixed kombiniert werden, um konsistent als String zu formatieren ...
round(456.7, 2).toFixed(2) // "456.70"
Wenn Sie Math.round(5.01)
erhalten Sie 5
anstelle von 5.0
.
Wenn Sie toFixed
Sie stoßen auf Rundung Ausgaben .
Wenn Sie das Beste aus beiden Welten wollen, kombinieren Sie beides:
(Math.round(5.01 * 10) / 10).toFixed(1)
Vielleicht möchten Sie dafür eine Funktion erstellen:
function roundedToFixed(input, digits){
var rounder = Math.pow(10, digits);
return (Math.round(input * rounder) / rounder).toFixed(digits);
}
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.
18 Stimmen
Math.round(n * 10) / 10
funktioniert. Wie lautet Ihr Code?0 Stimmen
ZU IHRER INFORMATION developer.mozilla.org/de/JavaScript/Reference/Global_Objects/