Arrotondamento dei numeri

Clojure:
Arrotondamento dei numeri

Come fare:

In Clojure, utilizziamo principalmente Math/round, Math/floor e Math/ceil:

(Math/round 3.5) ; => 4
(Math/round 3.4) ; => 3

(Math/floor 3.7) ; => 3.0
(Math/ceil 3.2)  ; => 4.0

Per decimali specifici, moltiplichiamo, arrotondiamo e dividiamo:

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

Approfondimento

Prima dei linguaggi di programmazione attuali, l’arrotondamento era un processo manuale, pensate all’abaco o alla carta. Nella programmazione, è cruciale per la rappresentazione dei numeri a causa delle limitazioni di precisione dei numeri in virgola mobile.

Alternative per l’arrotondamento includono l’uso della classe BigDecimal per il controllo della precisione o librerie come clojure.math.numeric-tower per funzioni matematiche avanzate. Math/round di Clojure si basa su Math.round, Math/floor e Math/ceil di Java, il che significa che eredita le stesse sfumature relative ai tipi float e double.

Dal punto di vista dell’implementazione, quando si arrotonda in Clojure, ricorda che automaticamente utilizza la doppia precisione quando si occupa di decimali. Attenzione agli errori di arrotondamento!

Vedi Anche