MathContext
MathContext (수치 연산 문맥)
MathContext는 BigDecimal 클래스가 구현하는 수치 연산자에 대해 특정 규칙을 설명하는 문맥 설정을 캡슐화한 불변(immutable) 객체입니다. Serializable을 구현합니다.
본문
MathContext는 베이스에 독립적인 두 가지 설정을 담습니다. 첫째로 precision은 연산에 사용할 자릿수로, 결과는 이 정밀도로 반올림됩니다.
둘째로 roundingMode는 반올림에 사용할 알고리즘을 지정하는 RoundingMode 객체입니다. 이 두 설정이 수치 연산의 결과 정밀도와 반올림 방식을 결정합니다.
주요 생성자로는 MathContext(int precision)와 MathContext(int precision, RoundingMode roundingMode)가 있습니다. 인자 없는 기본 생성자는 정밀도를 0으로 설정해 반올림이 발생하지 않는 것을 의미합니다.
getPrecision() 메서드로 정밀도를, getRoundingMode() 메서드로 반올림 모드를 얻을 수 있습니다.
BigDecimal 연산에 이 문맥을 전달하여 연산의 정밀도와 반올림 규칙을 일관되게 제어할 수 있습니다. 예를 들어 금융 계산에서 자릿수를 제한하거나 특정 반올림 방식을 적용할 때 사용합니다.
이 클래스는 불변이므로 스레드 간 공유가 안전하며, 자주 사용되는 문맥을 상수로 정의해 재사용할 수 있습니다.
equals()와 hashCode()를 구현하여 동일한 정밀도와 반올림 모드를 가진 문맥을 비교할 수 있습니다.
precision은 연산 결과가 반올림되는 자릿수를 나타내고, roundingMode는 사용할 반올림 알고리즘을 지정합니다.
getPrecision()과 getRoundingMode()로 설정을 조회할 수 있습니다.
BigDecimal의 연산 메서드에 이 문맥을 전달해 결과의 정밀도와 반올림 방식을 통제합니다.