자바스크립트에서 숫자는 객체이다.
아무렇지 않게 작성하던 숫자에도 다양한 메소드들이 있는데
숫자형이 가지고 있는 모든 메소드를 다루기보다 가장 많이 사용되는 두 가지 정도만 살펴보겠다.
toFixed Method
toFixed 메소드는 소수를 다룰 때 사용하는 메소드로,
파라미터로 숫자 값을 전달해 주면 그만큼 소수점 아래의 자릿수를 고정해 주는 메소드이다.
//Number
let myNumber = 0.3591;
//toFixed(0 ~ 100)
console.log(myNumber.toFixed(3));
▲ 범위는 0부터 100까지이며, myNumber에 0.3591이라는 숫자를 할당해 주고있고
toFixed 메소드를 호출하고있다.파라미터로 숫자 3을 전달해 주고있다.
그러면 0.3591 값의 소수점 아래 네 번쨰 자릿값을 반올림해서 소수점 세 자리까지 표시해준다.▼
1의 반올림은 그대로 이므로 0.359가 출력된다.
반대로 파라미터로 전달하는 값이 숫자 값의 자릿수를 초과하는 경우에는 0으로 대체된다.
예를들어 7값을 넣어보면..
//toFixed(0 ~ 100)
console.log(myNumber.toFixed(3));
console.log(myNumber.toFixed(7));
이렇게 7자리를 만들기 위해서 부족한 자릿수를 0으로 채워 넣는 걸 확인할 수 있다.
한 가지 주의해야할 점은 저렇게 계산된 값이 문자열이라는 점이다.
typeof 연산자를 붙여서 실행해보면..
//toFixed(0 ~ 100)
console.log(myNumber.toFixed(3));
console.log(myNumber.toFixed(7));
console.log(typeof myNumber.toFixed(7));
string이 출력되는 것을 확인 할 수 있는데
만약 더하기 연산 같은 걸 한다면 문자열 연결이 되어 버릴 수도 있으니 주의해서 사용해야 한다.
그래서 이 메소드로 수정된 값을 숫자로 사용하고 싶을 때는
Number 함수를 이용해서 숫자형으로 형 변환을 해줘야한다.●
//toFixed(0 ~ 100)
console.log(myNumber.toFixed(3));
console.log(myNumber.toFixed(7));
console.log(typeof myNumber.toFixed(7)); // string
console.log(Number(myNumber.toFixed(7))); //number 형 변환
아까 문자열로 나왔을 때 자릿수를 채우기 위해 들어간 0은 생략되고
숫자형태의 0.3591이 출력되는 걸 확인할 수 있다.
한 가지 팁이 있다면
자바스크립트에서는 어떤 값 앞에 더하기 기호를 붙여주면 Number 함수와 똑같은 결과를 얻을 수 있다.
//toFixed(0 ~ 100)
console.log(myNumber.toFixed(3));
console.log(myNumber.toFixed(7));
console.log(typeof myNumber.toFixed(7)); // string
console.log(Number(myNumber.toFixed(7))); //number 형 변환
console.log(+myNumber.toFixed(7)); // +기호 붙여서 Number 함수로 출력
자주 사용되지는 않지만 이렇게 toFixed 메소드를 활용할 때 종종 등장할 수 있으니 기억해두는게 좋다.
toString Method
toString은 파라미터로 전달하는 숫자의 진법으로, 숫자를 변환해 주는 메소드이며 범위는 2부터 36까지 이다.
//Number
let myNumber2 = 255;
//toString(2 ~ 36)
console.log(myNumber2.toString(2));
console.log(myNumber2.toString(8));
console.log(myNumber2.toString(16));
▲ 255를 각각 2, 8, 16진수로 변환하고 있는데, 코드를 실행해보면 변환된 모습을 확인 할 수 있다.
참고로 메소드 이름이 이미 toString인 만큼 결과값도 문자열이라는 점이다.
이렇게 자주 사용되는 숫자형 메소드 두 가지를 확인해봤는데,
한 가지 더, 일반적으로 숫자형 메소드를 사용할 때 주의해야할 점이 있다.
변수에 담아서 변수 이름과 점 표기법으로 메소드를 사용하고 있지만
숫자에 바로 이 메소드를 바로 사용할 수있는데,▼
console.log(255.toString(2));
▲ 그냥 255를 적으면 에러가 발생한다.
정수에 바로 점을 찍게 되면 메소드를 호출하는 점 표기법이아니라 소수점으로 인식하기 때문이다.
그래서 정수 형태의 숫자 값에는 메소드를 사용할 때에는▼
console.log(255.toString(2)); //error
console.log(255..toString(2)); //점 두개 사용
▲ 이렇게 점 두 개를 사용해야 한다.
또한 만약 점 두 개가 아닌 괄호를 넣어도 에러 없이 잘 출력된다.▼
// console.log(255.toString(2)); //error
console.log(255..toString(2)); //점 두개 사용
console.log((255).toString(8)); //괄호 사용
실행해보면 정상적으로 잘 출력이 되는 것을 볼 수 있다.
★GitHub 주소(숫자형 메소드)
'JS' 카테고리의 다른 글
(36) JavaScript - 자료형(심화) / 자바스크립트의 옥에 티 (0) | 2024.10.02 |
---|---|
(35) JavaScript - 자료형(심화) / Math 객체 (0) | 2024.10.02 |
(33) JavaScript - 자료형(심화) / 숫자 표기법 (0) | 2024.10.02 |
(32) JavaScript - 배열(Array) / 다차원 배열 (0) | 2024.10.01 |
(31) JavaScript - 배열(Array) / for...of 반복문 (0) | 2024.10.01 |