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 f16round()

Baseline 2025
Nouvellement disponible

Depuis avril 2025, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.

La méthode statique Math.f16round() retourne la représentation en virgule flottante 16 bits demi-précision (angl.) la plus proche d'un nombre.

Exemple interactif

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

console.log(Math.f16round(5.05));
// Sortie attendue : 5.05078125

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

console.log(Math.f16round(-5.05));
// Sortie attendue : -5.05078125

Syntaxe

js
Math.f16round(doubleFloat)

Paramètres

doubleFloat

Un nombre.

Valeur de retour

La représentation en virgule flottante 16 bits demi-précision (angl.) la plus proche de doubleFloat.

Description

Math.f16round est l'équivalent 16 bits de Math.fround(). Il est destiné à lisser certaines imperfections lors de l'interaction avec des nombres float16, par exemple lors de la lecture à partir d'un Float16Array. En interne, JavaScript continue de traiter le nombre comme un float 64 bits, il effectue simplement un « arrondi au pair » sur le 10e bit de la mantisse, et met tous les bits de mantisse suivants à 0. Si le nombre est en dehors de la plage d'un float 16 bits, Infinity ou -Infinity est retourné.

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

Exemples

Utiliser Math.f16round()

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

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

Cependant, le nombre 1,337 ne peut pas être représenté avec précision dans le système binaire, il diffère donc en 16 bits et 64 bits :

js
Math.f16round(1.337); // 1.3369140625
Math.f16round(1.337) === 1.337; // false

100000 est trop grand pour un float 16 bits, donc Infinity est retourné :

js
Math.f16round(100000); // Infinity

Spécifications

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

Compatibilité des navigateurs

Voir aussi