[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/parseFloat [Back]  [Original]

parseFloat() - JavaScript | MDN

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

parseFloat()

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 fonction parseFloat() analyse un argument de type chane de caractres et retourne un nombre flottant.

Dans cet article

Exemple interactif

function circumference(r) {
  return parseFloat(r) * 2.0 * Math.PI;
}

console.log(circumference(4.567));
// Rsultat attendu : 28.695307297889173

console.log(circumference("4.567abcdefgh"));
// Rsultat attendu : 28.695307297889173

console.log(circumference("abcdefgh"));
// Rsultat attendu : NaN

Syntaxe

js
parseFloat(string)

Paramtres

string

La valeur analyser, convertie en chane de caractres. Les espaces blancs en dbut de cette chane de caractres sont ignors.

Valeur de retour

Un nombre flottant obtenu partir de l'analyse de la chane de caractres fournie, ou NaN lorsque le premier caractre non blanc ne peut pas tre converti en nombre.

Note : JavaScript ne fait pas la distinction entre les  nombres virgule flottante  et les  entiers  au niveau du langage. parseInt() et parseFloat() ne diffrent que par leur comportement d'analyse, mais pas ncessairement par leurs valeurs de retour. Par exemple, parseInt("42") et parseFloat("42") retourne la mme valeur : un nombre (Number) 42.

Description

La fonction parseFloat convertit son premier argument en chane de caractres, analyse cette chane de caractres comme un littral de nombre dcimal, puis retourne un nombre ou NaN. La syntaxe des nombres qu'elle accepte peut tre rsume comme suit :

  • Les caractres accepts par parseFloat() sont le signe plus (+), le signe moins (- U+002D HYPHEN-MINUS), les chiffres dcimaux (0 - 9), le point dcimal (.), l'indicateur d'exposant (e ou E), et le littral "Infinity".
  • Les signes +/- ne peuvent apparatre qu'au tout dbut de la chane de caractres, ou immdiatement aprs le caractre e/E. Le point dcimal ne peut apparatre qu'une seule fois, et seulement avant le caractre e/E. Le caractre e/E ne peut apparatre qu'une seule fois, et seulement s'il y a au moins un chiffre avant.
  • Les espaces en dbut d'argument sont supprims et ignors.
  • parseFloat() peut galement analyser et retourner Infinity ou -Infinity si la chane de caractres commence par "Infinity" ou "-Infinity" prcde de zro ou plusieurs espaces blancs.
  • parseFloat() choisit la plus longue sous-chane de caractres commenant au dbut qui gnre un littral de nombre valide. S'il rencontre un caractre invalide, il retourne le nombre reprsent jusqu' ce point, en ignorant le caractre invalide et tous les caractres qui le suivent.
  • Si le premier caractre de l'argument ne peut pas commencer un littral de nombre lgal selon la syntaxe ci-dessus, parseFloat retourne NaN.

D'un point de vue syntaxique, parseFloat() analyse un sous-ensemble de la syntaxe que la fonction Number() accepte. En particulier, parseFloat() ne prend pas en charge les littraux non dcimaux avec les prfixes 0x, 0b ou 0o, mais prend en charge tout le reste. Cependant, parseFloat() est plus tolrant que Number(), car il ignore les caractres invalides en fin de chane de caractres, ce qui fait que Number() retourne NaN.

Similaire aux littraux numriques et Number(), le nombre retourn par parseFloat() peut ne pas tre exactement gal au nombre reprsent par la chane de caractres, en raison de la plage et de l'imprcision des nombres virgule flottante. Pour les nombres en dehors de la plage -1.7976931348623158e+308 1.7976931348623158e+308 (voir Number.MAX_VALUE), -Infinity ou Infinity est retourn.

Exemples

Utiliser la fonction parseFloat()

Les exemples suivants retournent tous 3.14 :

js
parseFloat(3.14);
parseFloat("3.14");
parseFloat("  3.14  ");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14et des caractres qui ne sont pas des nombres");
parseFloat({
  toString() {
    return "3.14";
  },
});

parseFloat() retourne NaN

L'exemple suivant retourne NaN :

js
parseFloat("FF2");

De manire anecdotique, comme la chane de caractres NaN elle-mme est une syntaxe invalide selon ce que parseFloat() accepte, passer "NaN" retourne galement NaN.

js
parseFloat("NaN"); // NaN

Retourner Infinity

Les valeurs infinies sont retournes lorsque le nombre est en dehors de la plage du format double prcision 64 bits IEEE 754-2019 :

js
parseFloat("1.7976931348623159e+308"); // Infinity
parseFloat("-1.7976931348623159e+308"); // -Infinity

L'infini est galement retourn lorsque la chane de caractres commence par "Infinity" ou "-Infinity" :

js
parseFloat("Infinity"); // Infinity
parseFloat("-Infinity"); // -Infinity

Interaction avec les valeurs BigInt

parseFloat() ne gre pas les valeurs BigInt. Il s'arrte au caractre n et traite la chane de caractres prcdente comme un entier normal, avec une perte de prcision possible. Si une valeur BigInt est passe parseFloat(), elle est convertie en chane de caractres, et la chane de caractres est analyse comme un nombre virgule flottante, ce qui peut galement entraner une perte de prcision.

js
parseFloat(900719925474099267n); // 900719925474099300
parseFloat("900719925474099267n"); // 900719925474099300

Vous devez passer la chane de caractres la fonction BigInt() la place, sans le caractre n final.

js
BigInt("900719925474099267");
// 900719925474099267n

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-parsefloat-string

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page