# Getting the integer part from a number in Javascript

Just a thing I learned today: using the bitwise not operator (~) on a number in Javascript ignores its fractional part (it converts it to integer first), therefore using it twice gives you **the integer part** of original number. Thanks to fetishlace for clarifications.

Notes:

- this is equivalent to (int)number in languages that support the int type
- this is equivalent to Math.trunc for numbers in the integer range
- this is equivalent to Math.floor only for positive numbers in the integer range

Examples:`~~1.3 = 1`

`~~-6.5432 = -6`

`~~(2 ** 32 + 0.5) = 0`

`~~10000000000 = 1410065408`

P.S. If you don't know what ** is, it's called the Exponentiation operator and it came around in Javascript ES2016 (ES7) and it is the equivalent of Math.pow. `2 ** 3 = Math.pow(2,3) = 8`

## Comments

Be the first to post a comment