JavaScript 개발을 하다 보면 문자열 형태의 숫자를 실제 숫자 타입으로 변환해야 하는 경우가 자주 발생합니다. 예를 들어, 사용자 입력값이나 API 응답 데이터는 대부분 문자열로 전달되기 때문에 연산을 수행하려면 반드시 숫자로 변환해야 합니다.
Number() 함수 사용하기
가장 기본적인 방법은 전역 함수인 Number()를 사용하는 것입니다. 이 함수는 인자로 받은 값을 숫자 타입으로 변환하며, 변환이 불가능한 경우 NaN(Not a Number)을 반환합니다.
예제 코드
<!DOCTYPE html>
<html>
<body>
<p>문자열을 숫자로 변환하기</p>
<script>
var myString = "Amit";
document.write("Number : " + Number(myString));
</script>
</body>
</html>실행 결과
위 코드에서 문자열 "Amit"은 숫자로 변환할 수 없는 값이므로 다음과 같이 출력됩니다.
Number : NaN
반면, 변환 가능한 숫자 형태의 문자열이라면 정상적으로 숫자가 반환됩니다.
Number("123"); // 123
Number("12.5"); // 12.5
Number(""); // 0
Number("abc"); // NaN다른 변환 방법들
1. parseInt() 함수
parseInt()는 문자열을 정수(Integer)로 변환합니다. 소수점 이하는 버려지며, 두 번째 인자로 진수(radix)를 지정할 수 있습니다.
parseInt("42"); // 42
parseInt("3.14"); // 3
parseInt("10", 2); // 2 (2진수 해석)2. parseFloat() 함수
parseFloat()는 문자열을 부동소수점 숫자로 변환합니다. 소수점까지 포함하여 변환이 필요한 경우에 유용합니다.
parseFloat("3.14"); // 3.14
parseFloat("42"); // 423. 단항 더하기 연산자 (+)
단항 더하기 연산자를 사용하면 간결하게 문자열을 숫자로 변환할 수 있습니다. Number()와 동일한 방식으로 동작합니다.
+"123"; // 123 +"12.5"; // 12.5 +"abc"; // NaN
어떤 방법을 선택해야 할까?
- Number(): 문자열 전체가 유효한 숫자여야 하며, 소수점도 처리해야 할 때 적합합니다.
- parseInt(): 정수만 필요하고, 앞부분의 숫자만 추출하고 싶을 때 유용합니다.
- parseFloat(): 소수점이 포함된 숫자를 문자열 앞부분부터 파싱할 때 사용합니다.
- + 연산자: 짧고 간결한 코드를 선호할 때 Number()의 대안으로 활용할 수 있습니다.
변환 결과가 NaN인지 확인하려면 isNaN() 함수를 함께 사용하는 것이 좋습니다. 이를 통해 잘못된 입력값에 대한 예외 처리를 안전하게 수행할 수 있습니다.