[Javascript] string을 number로 만드는 방법

윤남주·2021년 12월 18일
post-thumbnail

백준 알고리즘을 풀다보면 항상 input값을 string으로 받아오기 때문에 number로 다시 바꿔줘야할 때가 많이 있다. (다 풀고 두 값을 더해서 콘솔에 찍으면 1 + 2 = 3이 아닌 12가 찍힐 때도 있었다 ㅎㅎ)

그래서 이번에는 number로 자료형을 바꿔줄 수 있는 방법에 대해 알아본다.


parseInt()

문자열을 숫자(정수형)로 바꿔주는 함수.

parseInt(str, base)
base는 추가 옵션인데, 사용할 진법을 명시해주는 것이다. 기본값은 10진법.

let string = '123abc';
console.log(parseInt(string)); 
// Output : 123

특징은 문자열 안에 숫자가 아닌 것이 있어도 제대로 숫자만 뽑아와준다는 것.
하지만 parseInt인 만큼 소수가 있으면 .뒤의 값은 무시해버린다.


parseFloat()

문자열을 숫자(소수)로 바꿔주는 함수.

let str = '123.4ab56';
console.log(parseFloat(str));
// Output : 123.4

.이후의 숫자까지 포함하여 소수로 만들어준다. 하지만 문자열 뒤는 무시된다.
그렇기 때문에 밑과 같은 경우는 결과가 예상대로 나오지 않는다.

let str = 'asdf123.53a243'
console.log(parseFloat(str));
// Output : NaN

Number()

숫자 (정수, 소수) 만을 숫자형으로 변환시켜주는 함수. 다른 것이 들어가있으면 무조건 NaN!

console.log(Number('123'));
// Output :  123

console.log(Number('123.456'));
// Output :  123.456

console.log(Number('123asdf'));
// Output :  NaN

console.log(Number('123.12asd'));
// Output :  NaN

사용하는 상황이 다르다, 만약에 24px 등의 값을 변환해야한다면 parseInt()를, 아니면 문자열이 들어가면 오류 처리를 하고 싶다면 Number()를 사용.


내가 사용하는 방법...

아직 이 방법이 어떻게 다르고 혹여나 단점이 있는지는 모른다. 하지만 내가 가장 많이 사용하는 방법은 그냥 문자열 앞에 +을 붙이는 것이다.

이 방법으론 문자와 함께 있는 숫자는 안되고, 정수나 소수만 된다.

왜 이걸 가장 많이 쓰냐면, 숫자 배열을 불러왔을 때 숫자들이 문자열로 되어있다면 map 메소드로 쉽게 숫자형으로 바꿀 수 있다.

let myStrArr = ['1', '2', '3'];
let myNumArr = myArr.map(e => +e);
console.log(myNumArr);
// Output : [1, 2, 3]

하지만 parseInt(), parseFloat(), Number()를 더 사용해야겠다.

profile
Dig a little deeper

0개의 댓글