Convertir un double en int en Javascript sans arrondi

En C# le code suivant renvoie 2:

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

En Javascript, cependant, le seul moyen de la conversion d'un "double" d'un "int" que je suis conscient, c'est par l'utilisation des Mathématiques.tour/sol/toFixed etc. Est-il un moyen de convertir un int en Javascript sans arrondi? Je suis conscient des implications sur les performances de Nombre() donc je préfère éviter de convertir une chaîne si possible.

  • Pourquoi avez-vous écarter Math.floor?
  • Les réponses que vous conseiller d'utiliser "parseInt()" peut tous convertir une chaîne en interne d'abord, parce que c'est ce "parseInt()" attend. Vraiment, que ce soit des Mathématiques".floor()" ou encore "~~num" (le double "non" opération) sera tronquée, votre double précision de la valeur d'un entier.
  • Il a probablement règles Math.floor parce qu'il se comporte de façon différente pour les nombres négatifs. Comparer Math.floor(-2.5) et -2.5|0.
  • Jeter la partie fractionnaire est TOUJOURS arrondi, par définition. Vous voulez probablement: rounding towards zero.
InformationsquelleAutor RSH1 | 2011-12-05