Tech/iReport
BigDecimal계산식의 Divide 오류 해결
Enrai
2015. 12. 11. 09:55
((請求金額+付替金額)-支払金額)/(請求金額+付替金額)*100
의 계산으로 소수점 2자리까지 출력하는 계산을 해야 하는 상황.
계산 자체는 언제나처럼 BigDecimal을 이용하였는데,
기존 레포트 테스트에서와는 달리, JAVA와 연결한 PT에서 오류가 발생했다.
이유를 확인해 보니,
請求金額+付替金額가 0인 경우, 0으로 나눌 수 없다는 오류가 발생하는 것.
결국 해결한 방법은 분기를 넣는 것으로,
(請求金額+付替金額)-支払金額)이나 (請求金額+付替金額)가 0인 경우
그냥 리턴치를 0으로 돌려 버리는 것.
NULL체크 등도 해야 하기에, 코드가 조금 길어졌다.