Javascript

몫의 정수 부분만 구하는 방법들

John' 2023. 11. 23. 18:00

인간은 망각의 동물이다. 특정한 행동이나 생각을 자주 하지 않으면 우리 뇌 속에서는 신경의 가지치기 현상이 일어난다고 한다. 우리가 어떤 생각, 기분, 행동을 수행하지 않으면 뇌는 그와 연관된 뉴런들을 발화시키지 않는데, 그 결과 그러한 생각, 기분, 행동이 점점 약해지다가 결국 시들어버리고 잊게 되는 것을 신경 가지치기라고 한다. 그렇기 때문에 우리는 초등학교 시절처럼 리코더를 연주할 수 없는거고, 곡면의 부피를 구하는 적분 공식이나 근의 공식등에 대해 더는 기억하지 못하는 것이다. 쉽건, 어렵건 지금 나는 무조건 많이 생각하고 자꾸 써보고 사용해보는 것 밖에 방도가 없다 생각한다.

 

 

자바스크립트에서 몫의 정수부분을 구하는 방법은 정말 다양하다. 그 중 Double Tilde(~~)에 대해서 처음 알게되었고, 지금까지 알게 된 방법들을 정리 해 보았다.

 

1. Math.floor() 함수 사용하기

Math.floor() 함수는 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환한다. 따라서 몫의 정수부분을 구하는 데에 사용할 수 있다.

 

let a = 10;

let b = 3;

let quotient = Math.floor(a / b); // 3

 

 

 

 

2. Double Tilde(~~) 연산자 사용하기

Double Tilde(~~) 연산자를 사용해서 몫의 정수부분을 구할 수도 있다.

 

let a = 10;

let b = 3;

let quotient = ~~(a / b); // 3

 

 

 

3. parseInt() 함수 사용하기

parseInt() 함수를 사용해서 문자열을 정수로 변환할 수 있다. 이때, parseInt() 함수에 두 번째 인자로 radix 값을 지정하면 해당 진법으로 변환된 결과를 반환한다. 따라서 10진법의 몫을 구하는 경우, radix 값을 10으로 지정해야 한다.

 

let a = 10;

let b = 3;

let quotient = parseInt(a / b, 10); // 3

 

 

4. Bitwise 연산자 사용하기

Bitwise 연산자인 >> (Right shift)를 사용해서 몫의 정수부분을 구할 수도 있다. 이때, Bitwise 연산자는 소수점 이하를 버리는 특징이 있다.

 

let a = 10;

let b = 3;

let quotient = a / b >> 0; // 3

 

 

5. Number() 함수와 toFixed() 메서드 사용하기

Number() 함수와 toFixed() 메서드를 사용해서 소수점 이하를 버리고 정수로 변환할 수도 있다.

 

let a = 10;

let b = 3;

let quotient = Number((a / b).toFixed(0)); // 3

 

 

 

6. Math.trunc() 함수 사용하기

 

let a = 10;

let b = 3;

let quotient = Math.trunc(a / b); // 3

 

 

 

 

위와 같은 방법들 중에서, 일반적으로 가장 많이 사용되는 방법은 Math.floor() 함수나 Double Tilde(~~) 연산자를 통한 풀이였던거 같다.