본문 바로가기

Language/JavaScript

[JavaScript] Math|수학과 관련된 메서드 (+최댓값과 최솟값 사이에 랜덤수 구하기)

Math() 는 수학적인 연산을 수행하는 상수와 함수를 포함하는 내장 객체입니다.

 

자주 사용하는 메서드 위주로 예시와 함께 확인해봅시다.

 

 

 

round 는 반올림 메서드입니다.

console.log(Math.round(3.5));    //4
console.log(Math.round(3.49));   //3
console.log(Math.round(2));      //2
console.log(Math.round(0.82));   //1

 

 

 

ceil 은 올림 메서드입니다.

console.log(Math.ceil(1));      //1
console.log(Math.ceil(1.1));    //2
console.log(Math.ceil(2.01));   //3
console.log(Math.ceil(3.5));    //4

 

 

 

floor은 내림 메서드입니다.

console.log(Math.floor(2));      //2
console.log(Math.floor(2.01));   //2
console.log(Math.floor(2.5));    //2
console.log(Math.floor(2.99));   //2

 

 

 

random 은 0.0000000000000000에서 0.9999999999999999 사이의 범위에서 랜덤수를 제공하는 랜덤함수입니다. (1은 미포함)

const randomNumber = Math.random();
console.log(randomNumber);                    //0.9532672687180055

 

정수 1~9 사이의 랜덤수를 반환

const randomNumber2 = Math.random();
console.log(Math.floor(randomNumber2*10));    //9

 

최소(min), 최대값(max)을 받아 그 사이의 랜덤수를 반환

function getRandomNumber(min, max) {
return Math.floor(Math.random() * ((max - min) + 1) + min);
}

console.log (getRandomNumber(1, 100))

((max - min) + 1)을 통해 가능한 값의 범위를 계산합니다. max - min은 최대값과 최소값의 차이이며, + 1은 최대값을 포함하기 위해 더해줍니다.

Math.random()에 이 값을 곱하여 0 이상 (max - min) + 1 미만의 난수를 생성합니다. 생성된 난수에 min을 더하여 최소값을 보정하고,
Math.floor() 함수로 소수점 이하를 버려 정수로 변환합니다.

 

 

 

(Math.random() * ((max - min) + 1) + min) 가 정확히 이해되지 않는다면 숫자를 직접 넣어봅니다.

1~100 사이를 구현해보자.
Math.random()은 0과 1미만의 난수(a)를 반환하니 0 < a < 1 가 된다.
(0 < a < 1) * ((100 - 1) + 1) + 1 를 계산하면
0 < a < 101 으로 최댓값까지 포함할 수 있다.

 

한번 더! 50~90 사이의 랜덤값을 구현해보자.
(0 < a < 1) * ((90 - 50) + 1) + 50
0 < a < 91