본문 바로가기
웹 개발/javascript

[TIL] Math 메서드: Math.abs, Math.floor, Math.ceil, Math.round, Math.sqrt, Math.random, Math.max, Math.min, Math.pow 정리

by 스토리라이언 2021. 3. 4.

2021.3.4(목)

어제 오늘 코플릿 문제를 풀면서 Math의 메서드인 Math.abs, Math.floor 를 접하게 되었다. 

그래서 이 참에 Math 메서드 중 자주 사용되는 Math.abs, Math.floor, Math.ceil, Math.round, Math.random, Math.max, Math.min, Math.pow, Math.sqrt를 간단히 정리해 보아야겠다. 자료는 이웅모 님의 자바스크립트의 탁월한 저서 "모던 자바스크립트 Deep Dive"와 mdn 문서를 참고하였다. 

Math.abs(): 인수로 전달받은 숫자의 절대값을 반환한다. 절댓값은 반드시 양수 혹은 0이어야 한다.

Math.abs(-1);       // 1
Math.abs('-1');     // 1
Math.abs([-1]);     // 1
Math.abs('string'); // NaN
Math.abs({});       // NaN

Math.floor, Math.ceil, Math.round는 한 family로 같이 연관시켜서 익히면 좋다. Math.floor는 floor가 바닥이라는 의미이므로 소수점 이하를 무조건 내림한 정수를 반환한다. Math.ceil은 Math.floor의 반대 개념으로 ceil이 천정이라는 의미이니 소수점 이하를 무조건 올림 한 정수를 반환한다. Math.round는 반올림 한다. 


Math.floor() : 인수로 전달받은 숫자의 소수점 이하를 내림한 정수를 반환

Math.floor(1.2);  //1
Math.floor(1.9);  //1
Math.floor(-1.9); //-2
Math.floor(-9.1); //-10

Math.ceil() ; 인수로 전달받은 숫자의 소수점 이하를 올림한 정수를 반환

Math.ceil(1.1);  //2
Math.ceil(1.9);  //2
Math.ceil(-1.8); //-1
Math.ceil(-1.2); //-1

Math.round() ; 인수로 전달받은 숫자의 소수점 이하를 반올림한 정수를 반환

Math.round(1.2);  //1
Math.round(1.7);  //2
Math.round(-1.2); //-1
Math.round(-1.8); //-2

Math.random() : 임의의 램던 숫자를 반환한다. 즉 0~1 사이의 실수이다. 0은 포함되지만 1은 포함되지 않는다.  

보통 1 ~ 10 범위의 램덤 정수를 원할 때 사용한다.

1. Math.random으로 0 ~ 1 사이 랜덤 실수를 구한 다음, 10을 곱해 0 ~ 10 미만의 랜덤 실수를 구한다

2. 0 ~ 10 미만의 랜덤 실수에 1를 더해 1 ~ 10의 랜덤 실수를 구한다.

3. Math.floor로 1 ~ 10의 랜덤 정수로 변환한다.

Math.random();      //0.6553195665095666
Math.random();      //0.7040161781565413
Math.random()*10;   //7.757240383981625
Math.random()*10;   //4.598770174580384

Math.floor(Math.random()*10+1); //8
Math.floor(Math.random()*10+1); //3
Math.floor(Math.random()*10+1); //4

Math.max(), Math.min() : Math.max()는 전달받은 인수 장 가장 큰 수를 반환하고, Math.min()는 가장 작은 수를 반환한다.

Math.max(1,4);             //4
Math.max(1,5,9,33,55,100); //100
Math.min(1,5,9,33,55,100); //1

//배열을 인수로 받은 경우에는 스프레드 문법을 사용한다. 
Math.max(...[1,2,3]);      //3
Math.min(...[1,2,3]);      //1

Math.pow(base, exponent): 첫 인수를 밑(base), 두번째 인수를 지수(exponent)로 거듭제곱한 결과를 반환한다. 

Math.pow(2,3);  //8
Math.pow(2,4);  //16
Math.pow(2,5);  //32
Math.pow(2,6);  //64

Math.sqrt(): 인수로 전달받은 수의 제곱근을 반환한다.

Math.sqrt(4);  //2
Math.sqrt(9);  //3
Math.sqrt(16); //4
Math.sqrt(2);  //1.4142135623730951

 

댓글