Check if a number is an integer in JavaScript

July 11, 2022  ‐ 1 min read

In certain cases you need to check whether the number that is passed as an argument or so is an integer.

For such a use-case we use the method Number.isInteger(). Which returns true if the number is an integer and false otherwise.

Number.isInteger(42);
//=> true

Seems pretty straight forward but there are a couple gotchas to be aware of.

This one is probably as expected but integers as a string evaluate to false. If you are expecting an integer from a form field you should parse it first to an integer.

Number.isInteger('42');
//=> false

Floating-point looking values which represent an integer evaluate to true:

Number.isInteger(42.0);
//=> true

The same as above holds up when the precision limit of floats is exceeded, therefore the following evaluates to true:

Number.isInteger(42.000000000000001);
//=> true

But with one less zero it evaluates to false:

Number.isInteger(42.00000000000001);
//=> false