mozilla
Vos résultats de recherche

    parseFloat()

    Résumé

    La fonction parseFloat() permet de transformer une chaîne de caractères analysée en un nombre flottant (parsing).

    Syntaxe

    parseFloat(string)

    Paramètres

    string
    Une chaîne de caractères la valeur qu'on souhaite analyser et transformer en un nombre flottant.

    Description

    parseFloat est une fonction associée à aucun objet, disponible au plus niveau de l'environnement JavaScript.

    parseFloat analyse l'argument fourni sous la forme d'une chaîne de caractères et renvoie un nombre flottant correspondant. L'analyse de la chaîne s'arrête dès qu'un caractère qui n'est pas +,-, un chiffre, un point ou un exposant. Ce caractère, ainsi que les suivants, seront ignorés. Les blancs en début et en fin de chaîne sont autorisés..

    Si le premier caractère de la chaîne ne peut pas être converti en un nombre, parseFloat() renverra <code>NaN</code>.

    Pour des raisons arithmétiques, la valeur NaN n'est jamais un nombre, quelle que soit la base considérée. On peut utiliser la méthode isNaN() afin de déterminer si le résultat obtenu par parseFloat() est NaN. Si NaN est passé comme valeur lors d'opérations arithmétiques, ces opérations renverront également NaN comme résultat.

    parseFloat() peut également analyser et renvoyer la valeur Infinity qui représente l'infini numérique. Ici, on pourra utiliser la fonction isFinite() afin de déterminer si le résultat obtenu est un nombre fini (c'est-à-dire qui n'est ni Infinity, ni -Infinity, ni NaN).

    Exemples

    Utiliser parseFloat() pour renvoyer un nombre

    Les instructions suivantes renvoient toutes la valeur 3.14 :

    parseFloat("3.14");
    parseFloat("314e-2");
    parseFloat("0.0314E+2");
    parseFloat("3.14d'autres caractères non numériques");
    

    Utiliser parseFloat() pour renvoyer NaN

    Dans cet exemple, le résultat obtenu est <code>NaN</code> :

    parseFloat("FF2");
    

    Une fonction plus stricte

    Si on souhaite éviter de convertir des chaînes qui contiennent des caractères non numériques, on pourra utiliser une expression rationnelle pour filtrer ces valeurs (et obtenir une fonction plus stricte que parseFloat()) :

    var filterFloat = function (value) {
        if(/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/
          .test(value))
          return Number(value);
      return NaN;
    }
    
    console.log(filterFloat('421'));               // 421
    console.log(filterFloat('-421'));              // -421
    console.log(filterFloat('+421'));              // 421
    console.log(filterFloat('Infinity'));          // Infinity
    console.log(filterFloat('1.61803398875'));     // 1.61803398875
    console.log(filterFloat('421e+0'));            // NaN
    console.log(filterFloat('421hop'));            // NaN
    console.log(filterFloat('hop1.61803398875'));  // NaN
    
    

    Attention : ce code n'est qu'un exemple et renverra NaN pour des valeurs pourtant valides comme 1. ou .5.

    Spécifications

    Spécification Statut Commentaires
    Première édition d'ECMAScript. Standard Définition initiale.
    ECMAScript 5.1 (ECMA-262)
    La définition de 'parseFloat' dans cette spécification.
    Standard  
    ECMAScript 6 (ECMA-262)
    La définition de 'parseFloat' dans cette spécification.
    Draft  

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: BenoitL, Jeremie, SphinxKnight, teoli, Mgjbot
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale