📝 JAVA JUnit 실수 0으로 나누기
자바에서 정수를 0으로 나누면 DivideByZeroException이 발생하지만
실수를 0으로 나누면 무한대infinity가 나온다.
위의 예제에서의 0은 double형으로,
'실수 0은 완벽한 0이 아니기 때문에 발생한다'고 생각했지만.....
1 / 0.0 = ∞, -1 / 0.0 = -∞로 정의해서 infinity가 나오는 것이다!
실수타입은 IEEE 745 표준을 따르는데 여기서 그렇게 정의했다고 한다.
@Test
public void testDivByZero() {
assertTrue(Double.isInfinite(calc.div(num1, 0)));
}
위 예제의 calc.div 함수는 num1(미리 정의된 실수, 0이 아님), 0을 double 매개변수로 받아 나눈 값을 리턴한다.
따라서 infinity가 나오게 되고, isInfinite 함수로 확인하여
assertTrue로 테스트 수행한다.
댓글