La fonction Math.fround() renvoie le nombre flottant à précision simple sur 32 bits qui est le plus proche du nombre fourni.

Syntaxe

Math.fround(x)

Paramètres

x
Un nombre.

Valeur de retour

Le nombre flottant à précision simple sur 32 bits qui est le plus proche de la valeur fournie en argument.

Description

Un moteur JavaScript utilise des nombres flottant à précision simple sur 64 bits. Cela permet d'obtenir une précision fine. Toutefois, lorsqu'on manipule des valeurs représentées sur 32 bits (par exemple des valeurs extraites d'un Float32Array) et qu'on souhaite comparer celles-ci avec des valeurs sur 32 bits, on peut obtenir des inégalités alors que les valeurs semblent identiques.

Pour résoudre ce problème, on peut utiliser Math.fround() afin de transformer un nombre représenté sur 64 bits en un nombre représenté sur 32 bits. Pour le moteur JavaScript, la valeur sera toujours représentée sur 64 bits mais elle aura été « arrondie » à partir du 23e bit de la mantisse. Si le nombre passé en argument se situe en dehors de l'intervalle représentable sur 32 bits, la méthode renverra Infinity ou -Infinity.

fround étant une méthode statique de Math, il faut utiliser Math.fround() et non pas la méthode d'un autre objet qui aurait été créé (Math n'est pas un constructeur).

Exemples

Utiliser Math.fround()

Math.fround(0);     // 0
Math.fround(1);     // 1

// 1.337 ne peut pas être représenté correctement
// sur 32 bits
Math.fround(1.337); // 1.3370000123977661

Math.fround(1.5);   // 1.5
Math.fround(NaN);   // NaN

Prothèse d'émulation (polyfill)

Cette fonction peut être émulée en utilisant Float32Array (si elle est prise en charge) :

Math.fround = Math.fround || function(x) {
    return new Float32Array([x])[0];
};

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Math.fround' dans cette spécification.
Standard Définition initiale.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Math.fround' dans cette spécification.
Projet  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
Support simpleChrome Support complet 38Edge Support complet OuiFirefox Support complet 26IE Aucun support NonOpera Support complet 25Safari Support complet 8WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 26Opera Android Support complet OuiSafari iOS Support complet 8Samsung Internet Android Support complet Ouinodejs Support complet 0.12

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, teoli
Dernière mise à jour par : SphinxKnight,