목록 보기
택스테크 스타트업에서 부동소수점을 다루는 방법
백엔드

택스테크 스타트업에서 부동소수점을 다루는 방법

삼쩜삼
삼쩜삼
2024년 9월 20일

두줄요약

세금 계산의 부동소수점 오차를 줄이기 위해 BigDecimal 사용법과 주의점을 정리했습니다. 특히 생성 방식과 나눗셈 처리에서 발생할 수 있는 실수를 중심으로 설명했습니다.

핵심 내용

  • 세금 환급 계산처럼 정밀도가 중요한 도메인에서 부동소수점 오차가 법적·재무적 리스크로 이어질 수 있는 점 정리
  • 자바의 BigDecimal을 활용해 정확한 금액 계산을 수행하는 방법 소개

주의할 점

  • new BigDecimal(double) 사용 시 double의 근사값이 그대로 반영돼 예상과 다른 긴 소수값 생성 가능
  • 나눗셈·곱셈 시 MathContext 미지정이면 무한 소수로 ArithmeticException 발생 가능

적용해볼 점

  • double 값은 BigDecimal.valueOf(double), 문자열은 new BigDecimal(String)로 생성하는 방식 권장
  • 금액은 가능하면 가장 작은 단위의 long으로 저장하고, 필요 시 BigDecimal과 반올림 규칙을 함께 사용

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...