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
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 :
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 :
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é :
Math.f16round(100000); // Infinity
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.f16round> |
Compatibilité des navigateurs
Voir aussi
- La prothèse d'émulation de
Math.f16rounddanscore-js(angl.) - La prothèse d'émulation es-shims de
Math.f16round(angl.) - La méthode statique
Math.fround() - La méthode statique
Math.round()