FRONTEND/Javascript

[JS] 형변환 Number()와 parseInt()의 차이

숭코기 2023. 11. 29. 12:52
728x90

알고리즘 공부를 하면서 자주 보이는 Number와 parseInt.

형변환을 해주는건 알고 있었지만 어느것이 더 적절한지 알아보기 위해

둘의 차이점을 정리해 보려 한다.

 


Number(str)

 

문자열을 인자로 받으면 해당 문자열을 숫자로 바꿔주는 Number

 

const num = Number('123');
console.log(num); // 123

 

위의 코드는 '123'이라는 문자열을 123라는 숫자로 형변환 되어 출력된다.

 

const price = Number('100원');
console.log(price); // NaN

하지만 문자열이 숫자가 아닌경우 NaN이 출력된다.

 

 

parseInt(str)

 

Number(str)와 동일하게 문자열을 인자로 받으면 숫자로 바꿔주는 parseInt

 

const num = parseInt('123');
console.log(num); // 123

위의 코드는 문자열 '123'을 123 라는 숫자로 형변환해서 출력해준다.

 

const price1 = parseInt('1000원');
console.log(price1); // 1000

const price2 = parseInt('가격: 1000원');
console.log(price2); // NaN

여기서 Number와 다른 점이 있다면, 문자열이 숫자로 시작하는 경우에는 숫자가 끝날때 까지만 형변환을 하여 출력된다.

하지만 시작이 숫자가 아니면 Number와 동일하게 NaN이 출력된다.

 


 

const num = '10.123';

Number(num); // 10.123
parseInt(num); // 10
parseFloat(num); // 10.123

소수로 이루어진 문자열의 경우

Number는 전체값 출력, parseInt는 정수만 출력된다.


결론

문자열에서 숫자가 먼저 오는 문자열 숫자와 텍스트가 혼합 변수 값은 parseInt만 숫자 출력

소수점의 결과를 다 나타내고 싶을 때는 Number를 사용하자.

 

++

0으로 시작하는 문자열의 경우에는 Number, parseInt 모두 0을 제외한 숫자만 출력된다.


Reference

https://haruisshort.tistory.com/251

 

<JavaScript> parseInt()와 Number()는 어떤 차이가 있을까?

자바스크립트에서 문자를 숫자로 변환하기 위해 사용하는 방법으로는 parseInt()와 Number()가 있다. 더 간단하게는 문자 앞에 +를 붙여 숫자로 바꾸기도 한다. 어쨌든 둘 다 숫자로 변환해주니까 그

haruisshort.tistory.com

https://velog.io/@blackwidow/parseInt%EC%99%80-Number%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

parseInt()와 Number()의 차이

본인은 parseInt와 Number를 구별하지 않고 문자열을 숫자로 바꿀때 사용했다. 하지만 사용하면서 두개의 차이점이 궁금해지기 시작했다. 그래서 블로그로 정리해보았다.1\. '0이 반복되고 마지막 숫

velog.io

 

728x90