Numerojen pyöristäminen

Clojure:
Numerojen pyöristäminen

Kuinka:

Clojuressa käytämme pääasiassa Math/round, Math/floor ja Math/ceil:

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

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

Tietyille desimaalipaikoille me kerromme, pyöristämme ja jaamme:

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

Syväsukellus

Ennen hienoja ohjelmointikieliä, pyöristäminen oli manuaalinen prosessi, ajattele helmilaskinta tai paperia. Ohjelmoinnissa se on olennaista numeron esityksen kannalta liukulukujen tarkkuuden rajoitusten vuoksi.

Vaihtoehtoja pyöristämiselle ovat BigDecimal-luokan käyttö tarkkuuden hallintaan tai kirjastot kuten clojure.math.numeric-tower edistyneitä matemaattisia toimintoja varten. Clojuren Math/round perustuu Javan Math.round, Math/floor ja Math/ceil -funktioihin, mikä tarkoittaa, että se perii samat liuku- ja kaksoistarkkuuden nyanssit.

Toteutuksen osalta, kun pyöristät Clojuressa, muista, että se käyttää automaattisesti kaksoistarkkuutta käsitellessään desimaaleja. Varo pyöristysvirheitä!

Katso Myös