[JS] 형변환 Number()와 parseInt()의 차이
알고리즘 공부를 하면서 자주 보이는 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