Clojure:
Avrunding av tall

Hvordan:

I Clojure bruker vi primært Math/round, Math/floor og Math/ceil:

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

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

For spesifikke desimalplasser, multipliserer vi, runder av og deler:

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

Dypdykk

Før fancy programmeringsspråk var avrunding en manuell prosess, tenk kuleramme eller papir. I programmering er det avgjørende for tallrepresentasjon på grunn av begrensninger med flyttalls presisjon.

Alternativer for avrunding inkluderer bruk av BigDecimal-klassen for presisjonskontroll eller biblioteker som clojure.math.numeric-tower for avanserte mattefunksjoner. Clojures Math/round avhenger av Javas Math.round, Math/floor og Math/ceil-funksjoner, noe som betyr at den arver de samme flyte- og dobbeltøyansene.

Når det gjelder implementering, husk at når du runder av i Clojure, bruker den automatisk dobbel presisjon når den håndterer desimaler. Vær forsiktig med avrundingsfeil!

Se også