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