본문 바로가기
JavaScript & jQuery

JavaScript - toFixed() 함수로 인한 타입에러

by devLog by Ronnie's 2021. 8. 5.

JavaScript - toFixed() 함수로 인한 타입에러

 

소수점 둘째자리까지 반올림을 하기위해 toFixed()함수를 찾아서 쓰고 있는데 타입에러가 나와서 기록한다.

 

toFixed() 메서드

toFixed()는 입력받은 숫자를 매개변수만큼 자리수를 반올림해 String으로 반환해주는 함수이다.

만약 toFixed(2)라고하면 소수점 둘째자리까지 반올림해서 나태내준다.

 

이와 같이 toFixed 함수는 숫자형 타입에 사용을 하고 그 반환값으로 String 타입으로 반환해주는 것이기 때문에 타입에러가 났다는 것은 숫자형타입이 아닌 다른 타입에 사용했기 떄문에 나타나는 오류인 것이다.

 

이러한 오류가 나타나게 된 배경으로 객체에 담긴 값을 사용하다가 일어난 오류이다. 우선 자바스크립트는 자바와는 다르게 느스한 타입을 사용한다. 자바와 같이 숫자면 int, float .. 등으로 선언(강력한 타입)하는 것이 아니다.

/* JavaScript Example (loose typing) */
var a = 13; // Number 선언
var b = "thirteen"; // String 선언
/* Java Example (strong typing) */
int a = 13; // int 선언
String b = "thirteen"; // String 선언

이렇게 선언되어 있는 변수는 눈으로도 바로 확인이 가능하기에 타입이 숫자형인지 문자형인지 구별이 가능하지만 아래 예시와 같이 객체에 담겨서 오는 값을 사용하다보면 안에 값을 확인을 해봐야한다.

typeof() 함수로 확인해보니 String 타입이라서 오류를 뱉어낸것이다.

 

아래와 같이 Number()로 형변환을 해주고 사용하면 더이상 에러를 뱉지 않는다.

 

 

댓글