parseInt() 함수가 이상해~



바코드 관련 작업 중에 넘어온 바코드 정보인 문자열을 정수로 바꿔야 해서 아래와 같이 했다.

var t = document.getElementById("txtBarcode"); //바코드 값이 들어오는 텍스트 박스임
if(t == undefined || t == "") return;
alert(t);
var no = parseInt(t);
alert(no);

바코드 값은 문자열로 '00000000162" 였다. 당연히 t='00000000162' 고 no=162 이어야 하는데 아래같이 엉뚱한 값이 나왔다. 순간 당황~~


응? 이건 뭐야? 하다가 찾아봤더니 문자열 앞에 000 으로 값이 채워져 있어서 이 놈이 162가 8진수 값인지 알았던 것. parseInt에 2번째 인자에 값을 줄 수 있었다는. 아래처럼 고쳤더니 잘 되더라는..

var no = parseInt(t, 10);

즉, 10진수 값이라고 명시적으로 적어줘야 원하는 결과를 얻을 수 있었음. 나 지금껏 이런것도 모르고 모하고 있었던 것일까? 갑자기 자괴감이 든다. ㅜㅜ





Comment List

Write Comment