본문 바로가기

Development/Java

Non-terminating decimal expansion; no exact representable decimal result.

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

소수점 몇 자리까지 계산할 건지를 정해줘야 한다.

왜냐면 10을 3으로 나누면 3.333333333333.... 와 같이 값이 끝없이 나오기 때문에 정해서 잘라줘야 한다.

안 그러면 위와 같은 에러가 발생할 것이다.

방법은 아래와 같다.


BigDecimal a = new BigDecimal( "1.0" );
BigDecimal b = new BigDecimal( "0.3" );
//6자리까지 계산하겠다는 옵션. 다른 옵션은 다른 사이트을 참조.
BigDecimal c = a.divide( b, MathContext.DECIMAL32 );