[ 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() permet de transformer une chane de caractres en un nombre flottant aprs avoir analyse celle-ci (parsing).

Dans cet article

Exemple interactif

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

console.log(circumference(4.567));
// Expected output: 28.695307297889173

console.log(circumference("4.567abcdefgh"));
// Expected output: 28.695307297889173

console.log(circumference("abcdefgh"));
// Expected output: NaN

Syntaxe

js
parseFloat(string);

Paramtres

string

Une chane de caractres la valeur qu'on souhaite analyser et transformer en un nombre flottant.

Valeur de retour

Un nombre flottant obtenu partir de l'analyse de la chane de caractres. Si le premier caractre ne permet pas d'obtenir un nombre, ce sera la valeur NaN qui sera renvoye.

Description

parseFloat est une fonction non associe un objet, disponible au plus haut niveau de l'environnement JavaScript.

parseFloat analyse l'argument fourni sous la forme d'une chane de caractres et renvoie un nombre flottant correspondant. L'analyse de la chane s'arrte ds qu'un caractre qui n'est pas +,-, un chiffre, un point ou un exposant. Ce caractre, ainsi que les suivants, seront ignors. Les blancs en dbut et en fin de chane sont autoriss.

Note : Si on souhaite avoir un outil de conversion plus strict, on pourra utiliser Number(valeur) qui utilise une analyse plus stricte et qui fournit NaN pour les valeurs qui contiennent des caractres invalides, quelle que soit leur position.

Si le premier caractre de la chane ne peut pas tre converti en un nombre, parseFloat() renverra NaN.

Pour des raisons arithmtiques, la valeur NaN n'est jamais un nombre, quelle que soit la base considre. On peut utiliser la mthode isNaN afin de dterminer si le rsultat obtenu par parseFloat() est NaN. Si NaN est pass comme valeur lors d'oprations arithmtiques, ces oprations renverront galement NaN comme rsultat.

parseFloat() peut galement analyser et renvoyer la valeur Infinity qui reprsente l'infini numrique. Ici, on pourra utiliser la fonction isFinite() afin de dterminer si le rsultat obtenu est un nombre fini (c'est--dire qui n'est ni Infinity, ni -Infinity, ni NaN).

parseFloat() peut galement analyser un objet si celui-ci implmente la mthode toString() ou valueOf(). La valeur renvoye par parseFloat() le rsultat de parseFloat() appliqu la valeur renvoye par toString() ou valueOf() .

parseFloat() convertit une valeur BigInt en une valeur Number et perd ainsi en prcision car toutes les valeurs BigInt ne sont pas reprsentables en Number.

Exemples

Utiliser parseFloat() pour renvoyer un nombre

Les instructions suivantes renvoient toutes la valeur 3.14 :

js
parseFloat("3.14");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14d'autres caractres non numriques");

var titi = Object.create(null);
titi.valueOf = function () {
  return "3.14";
};
parseFloat(titi);

Utiliser parseFloat() pour renvoyer NaN

Dans cet exemple, le rsultat obtenu est NaN :

js
parseFloat("FF2");

parseFloat et BigInt

js
parseFloat(900719925474099267n);
// 900719925474099300

Une fonction plus stricte

Si on souhaite viter de convertir des chanes qui contiennent des caractres non numriques, on pourra utiliser une expression rationnelle pour filtrer ces valeurs (et obtenir une fonction plus stricte que parseFloat()) :

js
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.

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-parsefloat-string

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page