[자바스크립트] parseInt, parseFloat, NaN, Infinity, 문자열과 숫자열의 형변환

휘루·2023년 2월 20일
0

자바스크립트

목록 보기
3/42

숫자

5를 입력하면 5가 나옵니다.
0.3을 입력하면 0.3이 나옵니다.
50000을 입력하면 50000이 나옵니다.

5e4를 입력하면 뭐가 나올까요?
2진법으로 출력해서 50000이 나옵니다.

진법

0b를 붙이면 2진법,
0을 붙이면 8진법,
0x 붙이면 16진법입니다.

0b1111은 15가 나오고

0241은 161

0x1e8은 488이 나옵니다.

이렇게 진법에 따라 표현이 됩니다.

0x1e8은 488이었죠. typeof로 넌 정체가 뭐니 물어보면

0x1e8의 자료형은 숫자인 걸 알려줍니다.

NaN

그럼 NaN은 정체가 뭘까요?

typeof NaN은 숫자라고 알려줍니다.

숫자로 쳐줍니다. 그냥 외워야 한대요. Not a Number이지만 Number에 속하나 봅니다.

문자열, 숫자열

124는 숫자열(숫자)입니다.

'124'는 뭘까요? 문자열입니다.

따옴표, 쌍따옴표 안에 있는 숫자들은 다 문자로 표현되기 때문에 문자열입니다.

'124'+5를 하면 뭐가 될까요?
129가 될 것 같지만 문자열 1245가 됩니다.

parseInt

그럼 '124'+5를 숫자처럼 하고 싶은데 어떻게 해야 할까요?
'124'를 숫자로 변환해줘야 합니다.
parseInt('124')를 하면 숫자로 바뀝니다. 여기에 +5를 하면 되겠죠.

물론 Number로도 가능합니다.
Number('124') + 5;를 해도 바뀝니다.

그럼 위의 129가 숫자열이 맞는지 확인을 해야 합니다.

parseInt, parseFloat, Number

'3.14'는 문자열입니다. 이걸 숫자로 바꾸고 싶은데요.
정수로 바꾸려면 parseInt로 바꿀 수 있습니다.

그럼 3만 남습니다.
"3.14를 그대로 하고 싶은데요"

소수점까지 숫자로 바꾸고 싶다면 parseFloat을 사용합니다.

또 Number를 써도 바꿀 수 있습니다.

정수로 바꾸려면 parseInt
소수로 바꾸려면 parseFloat
정수나 소수로 바꾸려면 Number 사용도 가능합니다.

"그럼 Number만 써도 되지 않나요?" 라고 생각할 수 있습니다. 그게 간편하니까요.
그러나 숫자의 경우에만 가능하고 문자열이 섞인다면 NaN이 나옵니다.

parseInt('4월');

Number('4월');

차이가 좀 나는게 보이시죠. 문자열이 섞여 있어서 Number로는 숫자가 아니니까 NaN으로 나옵니다.

parseInt(prompt());로 값을 입력 받아 정수로 만들 수도 있습니다.


53.2로 작성해도 53으로 나옵니다. parseInt는 정수로 나타내주기 때문이죠.
소수점까지 나오게 하려면 parseFloat을 쓰면 됩니다.

parseFloat(prompt());를 해볼까요.


54.2로 출력이 됩니다.

Infinity

이번엔 무한을 알아볼게요. 무한은 4 나누기 0를 하면 무한히 나오겠죠.

그럼 마이너스로 나누면 어떻게 나올까요?

-Infinity가 나옵니다. 그럼 Infinity, -Infinity는 문자열일까요 숫자열일까요?

두가지 다 숫자열입니다.

제곱

제곱은 컴퓨터에서 표현을 하기에 어려워 *이 두개입니다.
곱하기가 두개인데 8**2로 하면 제곱으로 알려줍니다.

문자열과 숫자열의 형변환

'문자열'+0 으로 더하면 어떻게 될까요.

문자열0이 됩니다.
이건 숫자열일까요 문자열일까요?

문자열입니다.
NaN에 0을 빼볼게요.

NaN이 나옵니다. NaN에는 어떤걸 해도 NaN이 나옵니다.
문자열0을 정수화 시키기도 어렵습니다. 숫자열이 아니어서 NaN이 됩니다.

NaN과 숫자 표시, Number와 parseInt의 차이

NaN은 Number로도 나옵니다.

이렇게 하면 NaN이 나옵니다. 문자열이기 때문에 여전히 Number에서는 NaN표시가 나옵니다.
그러나 parseInt('5월') - 0을 하면 다르게 나옵니다.

문자열에 숫자열을 빼면 NaN이 나옵니다.

문자열 - 숫자열은 성립되지 않기 때문에 숫자가 아니다, NaN이 나옵니다.

결론

  • 더하기는 문자열이 아닌 애로 바뀝니다.
  • 빼기, 곱하기, 나누기는 숫자가 아닌 애들은 숫자로 바뀝니다.
profile
반가워요

0개의 댓글