Elm:
Zahlen runden

Wie geht das:

Das Basics-Modul von Elm bietet praktische Funktionen zum Runden: round, floor und ceiling. Hier ist, wie man sie verwendet.

import Basics exposing (round, floor, ceiling)

-- Auf die nächste ganze Zahl runden
round 3.14    --> 3
round 3.5     --> 4

-- Abrunden
floor 3.999   --> 3

-- Aufrunden
ceiling 3.001 --> 4

-- Dezimalstellen abschneiden ohne zu runden
truncate 3.76 --> 3

Elm bietet auch toLocaleString an, um auf eine feste Anzahl von Dezimalstellen zu runden:

import Float exposing (toLocaleString)

-- Auf zwei Dezimalstellen runden
toLocaleString 2 3.14159 --> "3.14"

Vertiefung

Elm ist eine streng typisierte funktionale Sprache, die Nebenwirkungen an die “Ränder” der Architektur delegiert. Das bedeutet, dass Funktionen wie das Runden rein und vorhersehbar sein müssen. Historisch gesehen ist das Runden eine gängige Operation in vielen Programmiersprachen, die sich mit der Ungenauigkeit der Fließkommazahlen-Arithmetik befassen.

Elms Ansatz zum Runden ist unkompliziert - die Funktionen sind rein und halten sich an mathematische Definitionen für round, floor und ceiling. Elm antizipiert die gängigen Bedürfnisse, indem es eingebaute Funktionen zur Verfügung stellt, da das Präzisionsmanagement eine häufige Anforderung ist, besonders in den Bereichen Finanzen und Grafik.

Alternativen zu den eingebauten Funktionen von Elm könnten benutzerdefinierte Implementierungen unter Verwendung von arithmetischen Operationen umfassen, aber das fügt unnötige Komplexität hinzu, wenn die Standardbibliothek die Aufgabe bereits effizient erfüllt.

In der aktuellen Version verwendet Elm die zugrundeliegende Fließkommazahlen-Mathematik von JavaScript für diese Operationen und bleibt damit konsistent mit dem IEEE 754-Standard, was bei der Berücksichtigung von Präzision und potenziellen Fließkommazahlen-Fehlern zu bedenken ist.

Siehe auch