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.0

Voor specifieke decimalen vermenigvuldigen, ronden en delen we:

(let [num 3.14159
      scale 1000]
  (/ (Math/round (* num scale)) scale)) ; => 3.142

Diepe 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