숫자 반올림하기

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와 같은 고급 수학 함수용 라이브러리가 있습니다. Clojure의 Math/round는 Java의 Math.round, Math/floor, Math/ceil 함수에 의존하는데, 이는 float 및 double의 미묘한 차이를 상속받음을 의미합니다.

구현 측면에서, Clojure에서 반올림할 때는 소수점을 다룰 때 자동으로 더블 정밀도를 사용한다는 점을 기억하세요. 반올림 오류에 주의하세요!

참고