Web/JavaScript + TypeScript

[JS]형변환(Casting)

Pretty Garbage 2022. 6. 22. 16:54

String() -> 문자형으로 변환

Number() -> 숫자형으로 변환

Boolean() -> 불린형으로 변환

 

prompt로 입력을 받게되면 문자열형으로 입력을 받게 되는데

이 때 점수 평균을 내는 프로그램을 만든다라고 가정했을 시

국어 90 수학 80 이라는 값을 입력받는다고 가정한다.

 

(90 + 80) / 2 = 85라고 예상되어지지만 실제 출력은

 

4540 이라는 값이 나오게 된다. 왜냐하면 문자열형으로 입력을 받기 때문에

90+80 = 9080 !?!? 이 되는데 이는 문자열 + 문자열시에 앞의 문장과 뒤에 문장을

이어버리기 때문!

 

그래서 명시적으로 형변환을 해줘야하는데

const mathScore = prompt("수학 몇점?");
const engScore = prompt("영어 몇점?");
const result = (Number(mathScore) + Number(engScore)) / 2;

console.log(result);

위와 같은 식으로 명시적으로 형변환을 시도하면 된다.

C#의 경우에는 (int)mathScore + (int)engScore 나 int.parse 같은 것으로 활용하면 되겠다.

(안전한 프로그램을 위해서 int.tryparse를 추천)