Zahlen bei Bedarf auf zwei Dezimalstellen runden
Beim Umgang mit numerischen Daten ist es oft notwendig, Werte auf bestimmte Dezimalstellen zu runden. In manchen Fällen möchten wir jedoch nur runden, wenn der Wert nicht bereits auf die gewünschte Genauigkeit gerundet ist.
Stellen Sie sich das folgende Szenario vor: Sie möchten Zahlen auf höchstens zwei Dezimalstellen runden, aber nur, wenn es nötig ist . Zum Beispiel:
Input: 10 1.7777777 9.1 Output: 10 1.78 9.1
Math.round() verwenden
Eine mögliche Lösung ist die Verwendung der Math.round()-Methode:
let roundedNum = Math.round(num * 100) / 100;
Bei diesem Ansatz wird die Zahl mit 100 multipliziert, bevor sie auf eine ganze Zahl gerundet wird (was den Dezimalpunkt effektiv um zwei Stellen nach rechts verschiebt) und dann zurückdividiert durch 100, um den Wert mit zwei Dezimalstellen zu erhalten.
Verwenden von Number.EPSILON
Dieser Ansatz behandelt Grenzfälle jedoch nicht korrekt. Beispielsweise würde 1,005 auf 1,01 anstatt auf 1,00 gerundet. Um dies zu beheben, können wir Number.EPSILON verwenden:
let roundedNum = Math.round((num + Number.EPSILON) * 100) / 100;
Number.EPSILON stellt den kleinsten Unterschied zwischen zwei Gleitkommazahlen dar, der als signifikant angesehen wird. Durch die Addition zur Zahl wird sichergestellt, dass der Wert auch in Grenzfällen korrekt gerundet wird.
Das obige ist der detaillierte Inhalt vonWie rundet man Zahlen in JavaScript genau auf zwei Dezimalstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!