1554 votes

Comment convertir un nombre flottant en un nombre entier en JavaScript ?

J'aimerais convertir un flottant en un nombre entier en JavaScript. En fait, j'aimerais savoir comment effectuer les DEUX conversions standard : en tronquant et en arrondissant. Et de manière efficace, pas en convertissant en une chaîne de caractères et en l'analysant.

105 votes

Si vous ne le saviez pas, tous les nombres en javascript sont des flottants. De la spécification :

8 votes

4.3.20 Type de numéro : Le type Number est un ensemble de valeurs représentant des nombres. Dans l'ECMAScript, l'ensemble de valeurs représente les valeurs IEEE 754 en double précision sur 64 bits, y compris les valeurs spéciales "Not-a-Number" (NaN), l'infini positif et l'infini négatif.

13 votes

Oui, Javascript ne dispose pas d'un type "entier" distinct, mais il n'est pas rare de devoir effectuer cette conversion. Par exemple, dans mon application, les utilisateurs ont tapé un nombre (incluant éventuellement des centimes). Je devais tronquer les centimes et les afficher avec des virgules. L'étape 1 consistait à convertir en int.

3voto

Alireza Points 40192

Si l'on s'intéresse aux natifs Math en JavaScript, vous disposez de tout un tas de fonctions pour travailler sur les nombres et les valeurs, etc...

En fait, ce que vous voulez faire est assez simple et natif en JavaScript...

Imaginez que vous avez le numéro ci-dessous :

const myValue = 56.4534931;

et maintenant si vous voulez l'arrondir au nombre le plus proche, il suffit de le faire :

const rounded = Math.floor(myValue);

et vous obtenez :

56

Si vous voulez arrondir au chiffre le plus proche, faites-le :

const roundedUp = Math.ceil(myValue);

et vous obtenez :

57

Aussi Math.round il suffit de l'arrondir à un chiffre supérieur ou inférieur, selon celui qui est le plus proche du numéro de lot.

Vous pouvez également utiliser de ~~ derrière le nombre de flottants, qui convertira un flottant en un nombre entier.

Vous pouvez l'utiliser comme ~~myValue ...

1voto

Gerard ONeill Points 319

Je tiens simplement à souligner que, d'un point de vue monétaire, il est préférable d'arrondir et non de tronquer. Il est beaucoup moins probable de se tromper d'un centime, puisque 4,999452 * 100 arrondi vous donnera 5, une réponse plus représentative.

Et en plus de cela, n'oubliez pas de arrondi du banquier Il s'agit d'un moyen de contrer le biais légèrement positif que donne l'arrondi direct - votre application financière peut l'exiger.

Arrondissement de Gaussien/Banker en JavaScript

0voto

Jameel Grand Points 1406

Si vous utilisez angularjs, la solution simple est la suivante Dans la liaison de modèle HTML

{{val | number:0}}

il convertira val en entier

passer par ce lien docs.angularjs.org/api/ng/filter/number

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