티스토리 뷰
오늘 Java의 Double.NaN 값을 비교하는 로직 때문에 완전 삽질을 했다. (덕분에 기록적인 혈압상승??을 맛보았다. ㅠ.ㅠ)
NaN값을 갖을 수 있는 double 변수 value 에 대해 아래와 같은 비교 연산을 통해서 예외 처리를 하였다.
if (Double.NaN != value) {
. . .
}
하지만 위의 연산으로는 value 변수의 값이 NaN임에도 불구하고 if문을 타는 경우가 발생했다.
간만에 엄청난 삽질을 한 결과 아래와 같이 처리해야 함을 알게 되었다.
if (Double.isNaN(value)) {
. . .
}
참고로 Double.isNaN(value) 함수의 코드를 보니까 아래와 같이 되어 있었다.
return (value != value);
오늘은 정말 엄한 삽질로 인하여 심신이 지친 관계로 정확한 원인은 다음에 구글링 해야할 것 같다.
추측하건데... 부동소수점 연산의 특성 때문이 아닐까 한다. ㅠ.ㅠ
. . .
}
하지만 위의 연산으로는 value 변수의 값이 NaN임에도 불구하고 if문을 타는 경우가 발생했다.
간만에 엄청난 삽질을 한 결과 아래와 같이 처리해야 함을 알게 되었다.
if (Double.isNaN(value)) {
. . .
}
참고로 Double.isNaN(value) 함수의 코드를 보니까 아래와 같이 되어 있었다.
return (value != value);
오늘은 정말 엄한 삽질로 인하여 심신이 지친 관계로 정확한 원인은 다음에 구글링 해야할 것 같다.
추측하건데... 부동소수점 연산의 특성 때문이 아닐까 한다. ㅠ.ㅠ
'Java' 카테고리의 다른 글
자바 main 함수 실행방법 정리 (0) | 2012.08.15 |
---|---|
DBCP의 일반적인 설정값 가이드... (1) | 2012.02.03 |
메이븐(Maven) 정리 (1) | 2012.02.03 |
Spring MVC Controller 클래스에 @Transactional 사용에 대한 삽질 (0) | 2012.01.26 |
Maven Local 저장소에 jar 배포하기 (Oracle Jdbc Driver 의존성 추가 삽질...) (1) | 2012.01.19 |
댓글