129 votes

Quel est le moyen le plus rapide de convertir une chaîne en un nombre en JavaScript ?

N'importe quel numéro, c'est un numéro. Une chaîne de caractères ressemble à un nombre, c'est un nombre. Tout le reste, c'est NaN.

'a' => NaN
'1' => 1
1 => 1

4voto

Daniel Smith Points 515

Je trouve que num * 1 est simple, clair, et fonctionne pour les entiers et les flottants...

3voto

Dan Dascalescu Points 8165

Cette méthode n'est probablement pas très rapide, mais elle présente l'avantage supplémentaire de garantir que votre nombre est au moins une certaine valeur (par exemple 0), ou au plus une certaine valeur :

Math.max(input, 0);

Si vous avez besoin de garantir une valeur minimale, vous feriez en général

var number = Number(input);
if (number < 0) number = 0;

Math.max(..., 0) vous évite d'écrire deux déclarations.

0voto

Digidemic Points 61

Vous pouvez essayer d'utiliser UnitéOf une bibliothèque de mesures et de conversion de types de données que nous venons de lancer officiellement ! UnitOf est super rapide, de petite taille, et efficace pour convertir n'importe quel type de données sans jamais lancer une erreur ou null/undefined. Les valeurs par défaut que vous définissez ou les valeurs par défaut de UnitOf sont retournées lorsqu'une conversion échoue.

//One liner examples
UnitOf.DataType("12.5").toFloat(); //12.5 of type Float is returned. 0 would be returned if conversion failed.
UnitOf.DataType("Not A Num").toInt(10); //10 of type Int is returned as the conversion failed.

//Or as a variable
var unit = UnitOf.DataType("12.5");
unit.toInt(5); //12.5 of type Float is returned. 5 would be returned if the conversion failed.
unit.toFloat(8); // 12 of type Int is returned. 8 would be returned if the conversion failed.

0voto

Arturas Points 154

Le moyen le plus rapide est d'utiliser -0 :

const num = "12.34" - 0;

0voto

Ramin eghbalian Points 1433

7 façons de convertir une chaîne en nombre :

let str = "43.2"

1. Number(str) => 43.2
2. parseInt(str) => 43
3. parseFloat(str) => 43.2
4. +str => 43
5. str * 1 => 43.2
6. Math.floor(str) => 43
7. ~~str => 43

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X