79 votes

Convertir un double en int en Javascript sans arrondir

En C#, le code suivant renvoie 2 :

 double d = 2.9;
int i = (int)d;
Debug.WriteLine(i);

En Javascript, cependant, la seule façon de convertir un "double" en "int" que je connaisse est d'utiliser Math.round/floor/toFixed etc. Existe-t-il un moyen de convertir en un int en Javascript sans arrondir ? Je suis conscient des implications de Number() sur les performances, donc je préfère éviter de le convertir en chaîne si possible.

185voto

dzejkej Points 5582

Utilisez parseInt() .

 var num = 2.9
console.log(parseInt(num, 10)); // 2

Vous pouvez également utiliser | .

 var num = 2.9
console.log(num | 0); // 2

32voto

Roland Points 323

Similaire à la conversion C# en (int) en utilisant simplement la bibliothèque standard :

 Math.trunc(1.6) // 1
Math.trunc(-1.6) // -1

9voto

Justin Niessner Points 144953

Utilisez simplement parseInt() et assurez-vous d'inclure la base pour obtenir des résultats prévisibles :

 parseInt(d, 10);

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