Clojure:
Afronden van getallen
Hoe:
In Clojure gebruiken we voornamelijk Math/round, Math/floor, en Math/ceil:
(Math/round 3.5) ; => 4
(Math/round 3.4) ; => 3
(Math/floor 3.7) ; => 3.0
(Math/ceil 3.2) ; => 4.0Voor specifieke decimalen vermenigvuldigen, ronden en delen we:
(let [num 3.14159
scale 1000]
(/ (Math/round (* num scale)) scale)) ; => 3.142Diepe Duik
Voor de komst van geavanceerde programmeertalen was afronden een handmatig proces, denk maar aan een abacus of papier. In programmering is het cruciaal voor de getallenrepresentatie vanwege de precisielimieten van drijvende-kommagetallen.
Alternatieven voor afronden omvatten het gebruik van de BigDecimal klasse voor precisiecontrole of bibliotheken zoals clojure.math.numeric-tower voor geavanceerde wiskundige functies. Clojures Math/round leunt op Java’s Math.round, Math/floor, en Math/ceil functies, wat betekent dat het dezelfde nuances van float en double erft.
Qua implementatie, wanneer je in Clojure afrondt, onthoud dan dat het automatisch dubbele precisie gebruikt bij het omgaan met decimalen. Pas op voor afrondingsfouten!
Zie Ook
- Clojure Math API: https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/math-context
- Java Math API: https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html
- Begrijpen van Drijvende-kommagetallen Precisie: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html