Baseline Widely available
La méthode Number.isSafeInteger()
permet de déterminer si la valeur, passée en argument, est un entier représentable correctement en JavaScript (c'est-à -dire un nombre compris entre -(2^53-1) et 2^53-1).
function warn(x) {
if (Number.isSafeInteger(x)) {
return "Precision safe.";
}
return "Precision may be lost!";
}
console.log(warn(Math.pow(2, 53)));
// Expected output: "Precision may be lost!"
console.log(warn(Math.pow(2, 53) - 1));
// Expected output: "Precision safe."
Note : Pour représenter des entiers qui ne sont pas compris dans cet intervalle, on pourra utiliser le type BigInt
.
Number.isSafeInteger(valeurÃTester);
Paramètres
valeurÃTester
La valeur dont on souhaite savoir si elle représente un entier représentable correctement en une valeur non signée sur 32 bits. (JavaScript utilise les nombres au format de virgule flottante à double précision comme spécifié dans IEEE 754 et ne peut représenter avec certitude un entier qu'entre -(2^53-1)
et 2^53-1
(c'est-à -dire ± 9007199254740991
).
Un booléen qui indique si la valeur fournie en argument est un entier représentable correctement en JavaScript.
DescriptionUn entier correctement représentable en JavaScript :
Ainsi, par exemple, 2^53 - 1
peut être représenté correctement, aucun autre entier ne peut être arrondi en cette valeur selon IEEE-754. En revanche, 2^53
ne peut pas être représenté correctement car 2^53 + 1
sera arrondi en 2^53
selon les règles IEEE-754 (arrondi à l'entier le plus proche).
L'intervalle des entiers qui peuvent être correctement représentés est [-(2^53 - 1),2^53 - 1
].
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
Spécifications Compatibilité des navigateurs Voir aussi
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4