나의 지식 보관소
NaN과 Infinity 본문
자바에서의 '/'과 '%'연산은 우측 피연산자에 0을 사용할 경우 ArithmeticException(예외)이 발생한다.
하지만 실수인 0.0이나 0.0f로 나누면 '/' 연산의 결과는 Infinity(무한대)의 값을 가지고, '%'연산의 결과는 NaN(Not a Number)을 가진다.
중요한 것은 이러한 값들( Infinity와 NaN )이 나오면 다음 연산을 수행하면 안 된다.
이러한 값들은 어떤 수와 산술 연산을 하더라도 Infinity와 NaN이 산출되므로 데이터가 엉망이 될 수 있다.
때문에 '/'와 '%'의 연산 결과가 Infinity 또는 NaN인지 아닌지 확인하는 작업이 필요하다. 그 방법은
Double.isInfinity( )와 Double.isNaN( ) 메서드를 사용하면 된다. 해당 메서드들은 double을 인자로 받아서 받은 값이 Infinity나 NaN이라면 true를 반환하고, 아니라면 false를 반환한다.