Double/Float 변환시 ClassCastException오류 NaN 해결
화면에서 컨트롤러로 파라미터 HashMap<String, String> map를 받아 double값을 형변환하려고 하는데 ClassCastException이 발생했다.
Java.lang.Integer cannot be case to Java.lang.String 이었고 원인을 찾아보니 NaN가 문제였다.
기존코드와 원인분석
1 | Double fee = Double.valueOf(map.get("fee")); |
원인은 바로바로 NaN이다!
화면에서 map.get(“fee”)의 값이 없어서 NaN으로 파라미터가 컨트롤러로 넘어왔다.
내 의도는 화면에서 주는 값이 없으면 서비스단에서 null을 넣는 거였는데 NaN이라 이를 Double로 형변환하려니까 ClassCastException이 발생한 것이었다.
해결
Double에서는 isNaN을 제공해준다. 이를 이용하면 된다.
1 | //해결코드 |
오늘도 해결!
![[OS/WINDOW]배포후 서버재시작에 batch와 윈도우 스케줄러 활용하기](https://cdn.pixabay.com/photo/2012/03/04/00/50/board-22098_960_720.jpg)
![[블로그]헥소테마에서 댓글기능 facebook에서 utterances로 변경하기](https://miro.medium.com/max/1600/1*aOv6h3h_v9PQWa03zGACnw.png)