JavaScript

[JavaScript] NaN 값뜨는 문제 해결

SongMinu 2017. 8. 8. 12:36
728x90

자바스크립트로 소스를 짜다보면

어떤 변수들의 합, 빼기, 곱, 나누기 등을 하게되는데

변수에 이상한 값이 들어가는 경우 결과 값이 NaN이 뜨는 문제가 생긴다.

내가 하려고했다가 이 문제가 생겼던게 

두 개의 변수에 각각 처리된 개수, 미처리된 개수를 담고

var detect_cnt = row.length; //미처리 상태 갯수

var solve_cnt = row2.length; //처리 상태 갯수 

var total_cnt = row.length + row2.length;

이 결과 값을 %로 표시하기 위해

var solve_result = solve_cnt / total_cnt * 100;

이렇게 소스를 짰었는데

처리 상태 갯수 결과값이 없으면 0이 아닌 undefined값이 들어가서

결과가 NaN이 발생했었다.

 

해결방법

if (isNaN(solve_result)) { // 값이 없어서 NaN값이 나올 경우

 solve_result = 0;

}

이렇게 해두면 NaN이 발생했을 때 0으로 해줘서 정상적으로 된다.

var detect_cnt = row.length; //미처리 상태 갯수

var solve_cnt = row2.length; //처리 상태 갯수 

var total_cnt = row.length + row2.length;

var solve_result = solve_cnt / total_cnt * 100;

if (isNaN(solve_result)) { // 값이 없어서 NaN값이 나올 경우

 solve_result = 0;

}

이 외에도 다른 페이지에서도 검색된 개수들이 각각 셀렉트박스에 넣어주는게 있었는데

몇몇개만 결과 값이 undefined가 떠서 전체 개수를 보여주는 부분도 같이 undefined가 떴었는데

이것도 isNaN을 사용해서 개수를 받는 변수를 isNaN으로 처리해줬더니 깔끔하게 해결되었다.

 

 

반응형