Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Math : méthode statique fround()

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode statique Math.fround() retourne la représentation en virgule flottante à précision simple sur 32 bits (angl.) la plus proche d'un nombre.

Exemple interactif

console.log(Math.fround(5.5));
// Sortie attendue : 5.5

console.log(Math.fround(5.05));
// Sortie attendue : 5.050000190734863

console.log(Math.fround(5));
// Sortie attendue : 5

console.log(Math.fround(-5.05));
// Sortie attendue : -5.050000190734863

Syntaxe

js
Math.fround(doubleFloat)

Paramètres

doubleFloat

Un nombre.

Valeur de retour

La représentation en virgule flottante à précision simple sur 32 bits (angl.) la plus proche de doubleFloat.

Description

JavaScript utilise des nombres flottants à précision double sur 64 bits en interne, ce qui offre une très grande précision. Cependant, il se peut que vous travailliez avec des nombres flottants sur 32 bits, par exemple si vous lisez des valeurs à partir d'un Float32Array. Cela peut créer de la confusion : vérifier l'égalité entre un flottant sur 64 bits et un flottant sur 32 bits peut échouer même si les nombres semblent identiques.

Pour résoudre ce problème, Math.fround() peut être utilisé pour convertir le flottant sur 64 bits en flottant sur 32 bits. En interne, JavaScript continue de traiter le nombre comme un flottant sur 64 bits, il effectue simplement un « arrondi au pair » sur le 23e bit de la mantisse, et met tous les bits suivants de la mantisse à 0. Si le nombre est en dehors de l'intervalle représentable sur 32 bits, Infinity ou -Infinity est retourné.

Puisque fround() est une méthode statique de Math, vous l'utilisez toujours sous la forme Math.fround(), plutôt que comme une méthode d'un objet Math que vous avez créé (Math n'est pas un constructeur).

Exemples

Utiliser Math.fround()

Le nombre 1,5 peut être représenté avec précision en système binaire, et sa représentation est identique en 32 bits et en 64 bits :

js
Math.fround(1.5); // 1.5
Math.fround(1.5) === 1.5; // true

Cependant, le nombre 1,337 ne pouvant pas être représenté avec précision dans le système binaire, il diffère selon qu'il s'agit d'un format 32 bits ou 64 bits :

js
Math.fround(1.337); // 1.3370000123977661
Math.fround(1.337) === 1.337; // false

21502^150 est trop grand pour un nombre à virgule flottante 32 bits, donc la valeur Infinity est retournée :

js
2 ** 150; // 1.42724769270596e+45
Math.fround(2 ** 150); // Infinity

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-math.fround

Compatibilité des navigateurs

Voir aussi