본문 바로가기

Study/JavaScript

parseInt()와 Number() 차이점

문자열을 숫자로 바꿀떄 보통 Number()와 parseInt를 많이 사용했다. 그런데 이 두가지는 뭐가 다를까? 이번기회에 차이점을 정리하고자 한다.

 

1. Number(Str)

- 문자열을 인자로 받으면 해당 문자열을 숫자로 바꿔준다.

- 하지만 그 문자열은 숫자 형태로만 구성되어있어야 유의미하다. 아래의 예시를 참고하자.

console.log(Number('1234'));  // 결과값 : 1234
console.log(Number('100원')); // 결과값 : NaN
console.log(Number('10.444'));  // 결과값 : 10.444

- 위와같이 한글 등의 문자가 껴있으면 원하는 결과값이 출력되지 않는다.

 

 

2. parseInt(Str)

- Nunber(Str)와 같이 문자열을 인자로 받으면 해당 문자열을 숫자로 바꿔준다.

- 그런데 변경되는 범위가 더 관대하고, 변경된 형태가 약간 상이하다. 아래 예시를 참고하자

console.log(parseInt('1234'));  // 결과값 : 1234
console.log(parseInt('100원')); // 결과값 : 100
console.log(parseInt('가격 : 100')); // 결과값 : NaN
console.log(parseInt('10.444'));  // 결과값 : 10

- 위의 예시와 같이, Number에서는 변경되지못했던 숫자+한글 조합도 숫자형태만 추출해준다. 하지만 이는 문자가 뒤에 있을때만 가용한 결과값이다.

console.log(parseInt('100원')); // 결과값 : 100
console.log(parseInt('가격 : 100')); // 결과값 : NaN

 

- 소수의 경우도 상이한데, String영역에 소수를 삽입했을때 소수점영역이 버림된 채 출력된다! 

타입만 변경된 채 그대로 출력하는 Number와는 달리 말이다!

console.log(parseInt('10.444'));  // 결과값 : 10

 

 

결론

숫자형태의 문자열을 그대로 숫자로 반환하고싶을때 Number() 를 쓰고,

뒤에 -원 등의 가격이 붙는다거나, 정수 형태의 값을 얻고싶다면 parseInt() 를 사용하자! 

 

 


참고

https://overcome-the-limits.tistory.com/264

 

[자바스크립트] parseInt와 Number의 차이

들어가며 알고리즘을 공부하면서, 가끔 parseInt를 써야 하는 경우와 Number를 써야 하는 경우는 언제인지 궁금했습니다. 이번 기회에 parseInt와 Number의 차이에 대해 정리해보면서, 언제 각각의 메서

overcome-the-limits.tistory.com