JavaScript-다양한 방법으로 문자열을 숫자로 변환하기

hannah·2023년 9월 6일
0

JavaScript

목록 보기
81/121

1. +

단항 더하기 연산자를 이용해 문자열을 숫자로 변환하는 방법

단항 더하기 연산자(+)는 문자열을 숫자로 반환하며 피연산자 앞에 위치

const quantity = "12";
console.log(+quantity);  //12

단항 더하기 연산자(+)는 문자열을 실수로 반환하는 데에도 사용될 수 있음

const quantity = "12.99";
console.log(+quantity);  //12.99

문자열이 숫자로 변환될 수 없는 경우에는 NaN을 반환

const quantity = "awesome";
console.log(+quantity);  //NaN

2. 문자열에 곱하기/나누기/빼기 1을 하여 문자열을 숫자로 변환하는 방법

const quantity = "10.5";
console.log(quantity * 1);	//10.5
const quantity = "10.5";
console.log(quantity / 1);	//10.5
const quantity = "10.5";
console.log(quantity - 1);	//10.5

3. 비트 부정 연산자(~)를 이용해 문자열을 숫자로 변환하는 방법

비트 부정 연산자(~)는 피연산자의 비트를 뒤집는다. 그리고 난 후 부호가 있는 32비트 정수로 변환한다. 부호가 있는 32비트 정수란 32비트(4바이트) 안에서 표현할 수 있는 값을 나타낸다.

하나의 비트 부정 연산자(~)를 숫자에 사용하면 -(x + 1) 연산을 실행하게 된다.

console.log(~19);	//-19

하지만 두 개의 비트 부정 연산자(~)를 사용하면 문자열을 숫자로 변환

console.log(~~19);	//19

결괏값으로 정수를 반환하기 때문에 위와 같은 방법은 실수에는 적용되지 않음

const quantity = "19.99";
console.log(~~quantity);	//19

만약 숫자가 아닌 문자에 사용할 경우 0을 반환

const quantity = "awesome";
console.log(~~quantity);	//0

변수의 값이 너무 크면 연산이 실행되지 않는 한계가 있음 그래서 부호가 있는 32비트 정수인지 확인하는 것이 중요

const quantity = "2700000000";
console.log(~~quantity);	//1594967296

4. parseFloat() 함수를 이용해 문자열을 숫자로 변환하는 방법

parseFloat 함수는 값을 받아 실수를 반환합니다. 실수의 예로는 12.99 또는 3.14와 같은 것들이 있음

parseFloat()를 이용해 위의 예제를 수정하면 실수인 12.99가 반환

const quantity = "12.99";
console.log(parseFloat(quantity));	//12.99

문자열 앞 혹은 뒤에 공백이 있어도 parseFloat()는 이전과 같이 문자열을 실수로 변환

const quantity = "   12.99    ";
console.log(parseFloat(quantity));	//12.99

문자열의 첫 글자가 숫자로 변환할 수 없는 경우 NaN을 반환

const quantity = "F12.99";
console.log(parseFloat(quantity));	//NaN

이외에도 parseInt()나 Number(), Math.floor(), Math.ceil(), Math.round() 등의 함수를 이용하여 문자열숫자로 변환할 수 있음

0개의 댓글