Javascript – Fließkommazahlen runden

In Javascripts Math-Bibliothek gibt es sechs unterschiedliche Funktionen, um Fließkommazahlen zu runden:

abs()

ceil()

floor()

round()

trunc()

fround()

Was ist der Unterschied zwischen diesen Funktionen?

abs()

abs() ist der Absolutwert einer Zahl. Mathematisch gesprochen ist es der Abstand einer Zahl zu Null. Da ein Abstand nicht negativ sein kann, ist der Absolutwert immer der positive Wert einer Zahl:

Math.abs(7.89012) = 7.89012
Math.abs(-7.89012) = 7.89012

ceil()

ceil() rundet einer Zahl auf den nächsten ganzzahligen Wert größer oder gleich der gegebenen Zahl auf:

Math.ceil(7.1) = 8
Math.ceil(7.8) = 8
Math.ceil(-7.1) = -7
Math.ceil(-7.8) = -7

Hierbei ist zu beachten, dass die nächstgrößere ganze Zahl von -7.1 nicht -8, sondern -7 ist.

floor()

floor() ist das Gegenstück zu ceil(), es rundet die gegebene Zahl also auf die nächstkleinere oder gleiche Zahl zu der gegebenen Zahl:

Math.floor(7.1) = 7
Math.floor(7.8) = 7
Math.floor(-7.1) = -8
Math.floor(-7.8) = -8

round()

round() rundet die gegebene Zahl auf die nächste ganze Zahl:

Math.round(7.1) = 7
Math.round(7.8) = 8
Math.round(-7.1) = -7
Math.round(-7.8) = -8

Die Funktion arbeitet mathematisch korrekt:

math.round(7.49) = 7
math.round(7.5) = 8

trunc()

trunc() schneidet einfach den Nachkommaanteil der gegebenen Zahl ab:

Math.trunc(7.1) = 7
Math.trunc(7.8) = 7
Math.trunc(-7.1) = -7
Math.trunc(-7.8) = -7

fround()

Diese Funktion benötigt man nur in speziellen Situationen, in denen man mir 32-Bit-Zahlen arbeiten muss, z. B. in der Grafik- oder Audioprogrammierung. Sie ermöglicht eine genauere Rundung als das allgemeinere round().
Hier ist eine genauere Erklärung, als sie in diesem Artikel sinnvoll ist.

(Foto von Mika Baumeister auf Unsplash)