소수(小數)에서 정수로 바꾸는 법

아무래도 숫자 연산을 할 때 소수점을 버린 정수가 필요할 때가 더러 있었는데요.
Math.floorparseInt, 가끔 쓰이는 Math.trunc는 좀 귀찮은 구석이 있었습니다. (글자 수도 잡아먹고…)

뭔가 저런 함수들을 쓰면 되긴 하는데, 간단한 연산자 하나로 끝낼 수 없을까 생각하다가,
모질라 문서에서 아이디어를 얻었습니다. 바로 비트연산자죠.

자바스크립트에서 비트 연산자는 부호가 있는 32비트 정수로 연산을 하니까,
소수점을 버리는 연산이 가능하지 않을까 생각했습니다.

x >> 0, x << 0, x >>> 0, 을 하면 정수부는 유지가 된 채로 소수점을 버릴 수 있더군요.
다만 >>>는 부호를 버리기 때문에 음수는 오버플로우되니 0과 양수 영역에서만 쓸 수 있겠더라고요.

테스트

image

이 글이 도움이 된 분들이 계셨으면 좋겠습니다 (꾸벅)

실제로 ~~ 가 많이 쓰이는 편이에요 ㅎㅎ

ex) ~~-Math.PI === -3

2개의 좋아요

그렇네요! 왜 이걸 생각 못했지