반응형
이클립스(Eclipse)에서 자바로 BigDecimal 변수를 사용하여 divide를 할 때, Non-terminating decimal expansion; no exact representable decimal result. 이 에러가 발생했다.
사용한 코드는 아래와 같다.
BigDecimal형 변수인 A와 B를 0으로 정의하고, C라는 BigDecimal 변수형을 정의하여 A를 B로 나눴을 때 발생을 했다.
BigDecimal A = new BigDecimal(0);
BigDecimal B = new BigDecimal(0);
BigDecimal C = A.divide(B);
여기서 A를 B로 나눴을 때, 나눠 떨어졌으면 상관이 없다. 근데 소수점이 나올 경우에 문제가 생긴다.
예를 들어, A를 100으로 B를 6으로 했을 때 나누게 되면 16.6666... 이렇게 진행이 된다. 이 경우에는 위와 같이, 문제가 발생한다. 그렇기 때문에, 이 문제를 해결하기 위해 소수점 몇 번째 자리까지 정의를 할건지 정해줘야 한다.
BigDecimal A = new BigDecimal(0);
BigDecimal B = new BigDecimal(0);
BigDecimal C = A.divide(B,2);
위의 코드처럼, divide 안에 숫자를 넣은 곳에 소수점 몇 번째 자리까지 표현할건지 정해주면 위 문제는 발생하지 않는다.
2022년 07월 14일 v1.0 작성
반응형
최근댓글