Android/Exception

NaN에러 발생시 대처 : org.json.JSONException: Forbidden numeric value: NaN

덩치 2014. 8. 18. 09:27



숫자형 값을 출력했더니 NaN값이 발생한다. 이유를 알아보자


NaN은 여러가지 경우에 발생한다.


데이터를 0으로 나눈 값을 입력하거나, 숫자로 바꿀 수 없는 문자열을 숫자로 입력받거나,


데이터형이 감당할 수 없는 크기의 값을 입력받게 되는 등등 다양한 경우에 걸쳐 발생한다.


필자도 org.json.JSONException: Forbidden numeric value: NaN 가 발생하여 고생했는데,

(제이슨 오브젝트에 NaN값을 가진 벨류를 put하여 발생)


다음과 같이 처리를 해주면 NaN 체크가 가능하다.


if (Float.isNaN(num))

if (Double.isNaN(num))


위와같이 체크를 하여 boolean값을 리턴받을 수 있다.


조건을 만족할 경우 Default 값을 설정 해 주면 되겠다.