Introduction
Mathematical operations are at the core of programming and computers, and it’s because they can do them so much faster than the average human that they have become popular.
One such operation is the division which can be quite complex but made a lot easier with integer division. With typical divisions, there can be a bit of approximation which can be difficult to work with when precision calculations are required (and especially with JavaScript where certain functions are implementation-dependent).
However, with integer division, you can divide two integers and discard the remainder (if any), especially if you only need the number of times (quotient) a number is divisible by another number. In this article, we will discuss how to achieve integer division in JavaScript.
JavaScript Integer Division Methods
We will make use of two methods and one operator to achieve JavaScript integer division.
Use floor() method
Within JavaScript, there is an all-powerful Math object that provides
a ton of mathematical functionalities from constants to functions.
Important to note that, the Math object doesn’t work with BigInt.
Within the Math object are static properties and methods that provide
mathematics functionalities.
One such static method is the floor method that rounds down its
Number type argument. So, for us to achieve integer division, we can
do the typical division using the / operator and round down the answer
(a floating-point number) using the floor method to give us the
quotient - the integer division result.
const y = 34;
const x = 12;
const quotient = Math.floor(y / x);
console.log(quotient);
Output
2
If you need the remainder, you can make use of the modulus operator
const y = 34;
const x = 12;
const quotient = Math.floor(y / x);
const remainder = y % x;
console.log(`quotient - ${quotient}, remainder - ${remainder}`);
Output
quotient - 2, remainder - 10
It also works with negative numbers.
const y = -3231134;
const x = 12;
const quotient = Math.floor(y / x);
const remainder = y % x;
console.log(`quotient - ${quotient}, remainder - ${remainder}`);
Output
quotient - -269262, remainder - -2
Use trunc() method
While the floor method rounds down, the trunc method simply returns
the integer part of a number and removes any fractional digits that are
present within a Number value.
So, we can carry out the same operation by changing the floor method
to the trunc method to achieve integer division in JavaScript.
const y = 34;
const x = 12;
const quotient = Math.floor(y / x);
const remainder = y % x;
console.log(`quotient - ${quotient}, remainder - ${remainder}`);
Output
quotient - 2, remainder - 10
Use the Bitwise Operator method
There are 7 bitwise operators that can perform binary-based actions on
their operands, and treats their operands as a set of 32-bit binary
digits. Important to us however is the bitwise NOT operator which
inverts the bits of its operand and can help us convert the
floating-point number to an integer.
const y = 34;
const x = 12;
const quotient = ~~(y / x);
const remainder = y % x;
console.log(`quotient - ${quotient}, remainder - ${remainder}`);
Output
quotient - 2, remainder - 10
So, the code inverts the bits of the division of the numbers twice to give the integer result that we need.
Summary
To achieve JavaScript integer division, we can make use of two static
methods from the Math object - floor and trunc - and one bitwise
operator - NOT. With the aid of these features, we can scale integer
divisions from small to large numbers. However, all methods don’t work
with BigInt numbers.
References
Math - JavaScript | MDN (mozilla.org)
Math.floor() (mozilla.org)
Math.trunc() - JavaScript | MDN
(mozilla.org)

![JavaScript Integer Division [3 Methods]](/javascript-integer-division/javascript-integer-division.jpg)