개발자를 희망하는 초보의 자기개발 이야기

toFixed / toString / Math 메소드 본문

프론트엔드(Front-end)/JavaScript

toFixed / toString / Math 메소드

클라우드아실 2021. 1. 3. 23:58
반응형

JavaScript toFixed / toString / Math 메소드

toFixed

 : 자바스크립트는 정수, 실수에 대한 자료형을 따로 구분하지 않습니다. toFixed는 만약 소수점 아래의 자릿수를 고정해서 반환하고 싶을 때 파라미터로 숫자 값을 전달해 주면 그만큼 소수점 아래의 자릿수를 반올림해서 고정해 주는 메소드입니다.

let number = 0.1234;
console.log(number.toFixed(3)) // '0.123' 출력

 

 : 존재하는 자릿수 값보다 큰 수를 파라미터로 전달하면 0을 추가해서 출력합니다.

let number = 0.1234;
console.log(number.toFixed(6)) // '0.123000' 출력

 

 : 단, 문자열로 반환하기 때문에 계산할 때 사용하려면 Number를 이용해 형변환해야 합니다.

let number = 0.1234;
console.log(Number(number.toFixed(3))) // 숫자 0.123 출력
console.log(+number.toFixed(3)) // 앞에 + 기호를 붙이면 자동 형변환 됨. 동일한 숫자 0.123

 

toString

 : 파라미터로 전달하는 숫자의 진법으로 숫자를 변환해주는 메소드도 있습니다. 2진수, 16진수 등 다른 진수의 값을 확인하고 싶을 때 사용할 수 있습니다.

let number = 123;
console.log(number.toString(2)) // '1111011'
console.log(number.toString(16)) // '7b'

 

  : toFixed와 마찬가지로 문자열로 반환되니 숫자로 활용하려면 형변환해야 합니다.

let number = 123;
console.log(Number(number.toString(2))) // 1111011
console.log(+number.toString(16)) // 7b

 

 : toString은 특이하게 배열에서는 해당 배열의 모든 값을 하나의 문자열로 반환하는 메소드입니다. 
같은 이름이지만 기능이 다른 메소드입니다.

const arr = [1, 2, 'a', 'b'];

console.log(arr.toString()); // "1,2,a,b"

 

 : 만약 숫자값에 직접 .toString을 사용하면 .을 통한 메소드 사용인지 아니면 소수점의 .인지 구별할 수 없기 때문에 에러가 발생합니다. 이때는 .을 두번 .. 으로 입력해서 사용할 수 있습니다.

console.log(123..toString(2)) // '1111011'
console.log(123..toString(16)) // '7b'

 

Math 메소드

 : Math 메소드는 수학에서 자주 사용하는 상수와 함수들을 미리 구현해 놓은 자바스크립트 표준 내장 객체입니다. MDN에 따르면 브라우저에 따라 Math 메소드의 결과가 다를 수 있으며, 서로 같은 JS 엔진이라도 운영체제나 아키텍쳐에 따라서 불일치하는 값을 반환할 수 있다고 합니다. 부동 소수점 오차 로 발생하는 문제라 생각되니 실수형 자료를 계산할 때 참고해야겠습니다.

Math.random

 : 0부터 1.0 사이의 랜덤한 숫자를 반환합니다. 자바스크립트는 부동소수점 최대 자리수 16자리 까지 값을 랜덤으로 반환합니다. 앞서 배웠던 메소드나 아래 메소드 들을 통해서 정수형태로 바꿔서 주로 사용하게 됩니다. 

Math.random();       // 0부터 1.0 사이의 랜덤한 숫자 ex.) 0.481924122144366

 

Math.abs

 : 파라미터의 값이 절댓값으로 리턴됩니다. 보통 정수, 음수의 구분 없이 절대값이 필요할 때 주로 사용하게 됩니다.

let num1 = -20;
let num2 = 20;

Math.abs(num1) === num2; // true

 

Math.pow

 : 거듭제곱을 하는 메소드로 자바스크립트는 3가지 방법으로 거듭제곱 할 수 있는데 그중에 메소드를 이용하는 방법입니다. x의 y승의 방식으로 사용합니다.

let num = 2;
Math.pow(num, 2); // 4


그 외 메소드 없이 거듭제곱하는 방법

1. x * x // 반복해서 곱한다.
2. x ** y // x 의 y 승으로 계산한다.

 

Math.sqrt

 : 제곱하는 것과 반대로 제곱근을 구하는 메소드입니다.

console.log(Math.sqrt(9)) // 3
console.log(Math.sqrt(16)) // 4

 

Math.round

 : 가장 가까운 정수로 반올림 하는 메소드입니다.

console.log(Math.round(2.3)) // 2
console.log(Math.round(2.419126872)) // 2
console.log(Math.round(2.6)) // 3

 

Math.floor

 : 소수를 버리고 정수만 반환하는 메소드입니다.

console.log(Math.round(2.3)) // 2
console.log(Math.round(2.419126872)) // 2
console.log(Math.round(2.6)) // 2

 

정리

  • toFixed // 소수점 자릿수 고정
  • toString // 진법 표현
  • Math 메소드(random, abs, pow, sqrt, round, floor)

참고

생활코딩 숫자와 문자

제로초 숫자와 Math 객체

TCPSCHOOL.COM Math 객체

MDN Math

 

반응형