Number.isSafeInteger()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
El método Number.isSafeInteger()
determina si el valor provisto es un número que es un entero seguro.
Pruébalo
Un entero seguro es un entero que
- puede ser exactamente representado como un número IEEE-754 de doble presición, y
- su representación IEEE-754 no puede ser el resultado de redondear cualquier otro entero para adaptarse a la representación de IEEE-754.
Por ejemplo, 253 - 1
es un entero seguro: puede ser exactamente representado y ningún otro entero puede ser redondeado a él bajo cualquier modo de redondeo de IEEE-754. En contraste, 253
no es un entero seguro, puede ser exactamente representado en IEEE-754, pero el entero 253 + 1
no puede ser directamente representado en IEEE-754 pero en su lugar, redondea a 253
bajo los modos de redondeo redondeo-al-más-cercano y redondeo-a-cero. Los enteros seguros consisten en todos los enteros desde -(253 - 1)
inclusivo, hasta 253 - 1
inclusivo (± 9007199254740991
o ± 9,007,199,254,740,991).
Manejar valores más grandes o más pequeños que ~9 cuatrillones con presición completa requiere usar una biblioteca de artimética de presición arbitraria. Ver Lo que todo programador necesita saber sobre aritmética de punto flotante para más información sobre representaciones de punto flotante de los números.
Sintaxis
Number.isSafeInteger(valorDePrueba)
Parámetros
valorDePrueba
-
El valor a probar si es un entero seguro.
Valor de retorno
Un Boolean
que indica si el valor dado es un número que es entero seguro.
Ejemplos
Number.isSafeInteger(3); // true
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.isSafeInteger(Math.pow(2, 53) - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true
Polyfill
Number.isSafeInteger =
Number.isSafeInteger ||
function (value) {
return (
Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER
);
};
Especificaciones
Specification |
---|
ECMAScript Language Specification # sec-number.issafeinteger |
Compatibilidad con navegadores
BCD tables only load in the browser
Ver también
- El objeto
Number
al que pertenece. Number.MIN_SAFE_INTEGER
Number.MAX_SAFE_INTEGER