Comprobar números enteros
Así, para andar por casa, podemos decir que un número entero es uno que no tenga decimales.
Existen dos métodos que chequean si un número es entero o no
- Number.isInteger()
- Number.isSafeInteger()
El método isInteger(num) es un método estático que devuelve true si el argumento es un valor numérico sin parte decimal, es decir, un número entero.
Puede servir como alternativa al operador % (resto)
var numero = 1487;
var divisor = 2;
var es_par = Number.isInteger(numero/divisor);
console.log(numero+ " par "+es_par);
Si al dividir un número entre 2 el resultado es entero entonces el número es par.
Este método es estático por tanto necesita que se escriba con el nombre del constructor Number.isInteger(num).
Como es lógico el argumento ha de ser un valor numérico. Si se usa una cadena, un valor null o una constante numérica como infitity el resultado será false.
El segundo método Number.isSafeInteger(num) devuelve true si el argumento es un entero dentro del rango de Safe integer, es decir, representable en formato de doble precisión. Más concretamente está dentro del rango -253-1 a +253-1, que es el número de valores representables con este foprmato.
var numero = Math.pow(2, 53);
var es_entero, es_safe;
es_entero = Number.isInteger(numero);
es_safe = Number.isSafeInteger(numero);
console.log("Es safe " + es_safe); //false
console.log("Es entero "+es_entero); //true
Un número puede ser entero, pero estar fuera del rango de safe integer como en el ejemplo.