Округлення чисел

Clojure:
Округлення чисел

Як це робити:

В Clojure ми переважно використовуємо Math/round, Math/floor та Math/ceil:

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

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

Для конкретних десяткових місць ми множимо, округляємо та ділимо:

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

Поглиблений Огляд

Перед появою складних мов програмування, округлення було ручним процесом, думайте про абак або папір. У програмуванні це критично важливо для представлення чисел через обмеження точності чисел з плаваючою комою.

Альтернативи для округлення включають використання класу BigDecimal для контролю точності або бібліотеки, як-от clojure.math.numeric-tower для розширених математичних функцій. Math/round в Clojure базується на Math.round, Math/floor та Math/ceil від Java, що означає, що воно наслідує ті ж міркування щодо чисел типу float і double.

З точки зору реалізації, коли ми округлюємо в Clojure, пам’ятайте, що воно автоматично використовує подвійну точність при роботі з десятковими дробами. Будьте обережні з помилками округлення!

Дивіться також