[Javascript] number 타입을 string 타입으로 변환할 때, toString() 사용 주의사항

박기영·2022년 10월 30일
0

Javascript

목록 보기
11/45

알고리즘 문제를 풀다보면 number 타입으로 들어온 데이터를 자릿수별로 쪼개서 사용해야하는 경우가 종종 있다.
이 때. String() 혹은 toString()을 많이 사용하는데
필자는 String()을 주로 사용하다가 다른 분들 풀이를 보며 toString()을 사용해보았다.
이 때 겪은 문제에 대해서 정리하고자 한다.

문제 상황

97.toString() // 에러

이 코드는 에러가 발생한다.
String(97)를 사용하면 문제가 없지만, 97.toString()은 에러를 일으킨다.
즉, 정수 리터럴을 함수에 직접 사용할 경우 오류가 발생한다.

원인

이유는 바로 JS에서 숫자 뒤의 .은 부동 소수점 숫자의 일부로 해석하기 때문이다.

100.toString()

에서 toString() 부분을 숫자로 해석하기 때문에 이런 문제가 발생한다는 것이다.

해결 방법

// 방법 1
let num = 97;
num.toString();  // "97"

// 방법 2
(97).toString();  // "97"

// 방법 3
97.0.toString();  // "97"

방법 1

  • 변환할 숫자를 변수에 저장하여, 변수에 toString()을 사용한다.

방법 2

  • 변환할 숫자를 ()로 감싼 것에 toString()을 사용한다.

방법 3

  • 정수 뒤에 .0을 붙인 뒤, toString()을 사용한다.
  • 정수에 소수점은 하나만 존재하기 때문에 .0 을 붙여서 사용하면, 두번째 .은 마침표 표기법으로 해석하기 때문이다.

참고 자료

김관장님 블로그

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글