Number.isInteger()

The Number.isInteger() method determines whether the passed value is an integer.

Syntax

Number.isInteger(value)

Parameters

value
The value to be tested for being an integer.

Return value

A Boolean indicating whether or not the given value is an integer.

Description

If the target value is an integer, return true, otherwise return false. If the value is NaN or Infinity, return false. The method will also return true for floating point numbers that can be represented as integer.

Examples

Using isInteger

Number.isInteger(0);         // true
Number.isInteger(1);         // true
Number.isInteger(-100000);   // true
Number.isInteger(99999999999999999999999); // true

Number.isInteger(0.1);       // false
Number.isInteger(Math.PI);   // false

Number.isInteger(NaN);       // false
Number.isInteger(Infinity);  // false
Number.isInteger(-Infinity); // false
Number.isInteger('10');      // false
Number.isInteger(true);      // false
Number.isInteger(false);     // false
Number.isInteger([1]);       // false

Number.isInteger(5.0);       // true
Number.isInteger(5.000000000000001); // false
Number.isInteger(5.0000000000000001); // true

Polyfill

Number.isInteger = Number.isInteger || function(value) {
  return typeof value === 'number' &&
    isFinite(value) &&
    Math.floor(value) === value;
};

Specifications

Specification
ECMAScript Language Specification (ECMAScript)
# sec-number.isinteger

Browser compatibility

BCD tables only load in the browser

See also

  • A polyfill of Number.isInteger is available in core-js
  • The Number object it belongs to.