Double/Float 변환시 ClassCastException오류 NaN 해결
화면에서 컨트롤러로 파라미터 HashMap<String, String> map
를 받아 double값을 형변환하려고 하는데 ClassCastException이 발생했다.
Java.lang.Integer cannot be case to Java.lang.String 이었고 원인을 찾아보니 NaN가 문제였다.
기존코드와 원인분석
원인은 바로바로 NaN
이다!
화면에서 map.get(“fee”)의 값이 없어서 NaN
으로 파라미터가 컨트롤러로 넘어왔다.
내 의도는 화면에서 주는 값이 없으면 서비스단에서 null
을 넣는 거였는데 NaN이라 이를 Double로 형변환하려니까 ClassCastException이 발생한 것이었다.
해결
Double에서는 isNaN을 제공해준다. 이를 이용하면 된다.
1 | //해결코드 |
오늘도 해결!