Comment puis-je arrondir à des nombres entiers en JavaScript?


92

J'ai le code suivant pour calculer un certain pourcentage:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

Ce que je veux en conséquence, c'est le nombre exact 43et si le total est, 43.5il doit être arrondi à44

Existe-t-il un moyen de faire cela en JavaScript?

Réponses:


167

Utilisez la Math.round()fonction pour arrondir le résultat à l'entier le plus proche.


m'a aidé aussi! :) Merci pour le copain de lien MDN :)
Afzaal Ahmad Zeeshan

1
Le mérite du lien revient à @Jeremy. Merci de l'avoir insérée - cela a rendu les débuts tellement plus amusants que la cinquième réponse que j'ai jamais écrite obtienne autant de votes que celle-ci, ce qui était sûrement dû au lien. :-)
hmakholm a laissé Monica

2
OP ne voulait-il pas arrondir? Si tel est le cas, peut-être que Math.ceil () serait plus approprié
martellalex

1
@martellalex: À partir de la question, l'OP voulait que 43,333 arrondisse à 43 mais 43,5 à 44, ce qui correspond exactement au comportement d'ECMAScript Math.round () d'arrondir au plus proche et d' exécuter des demi-entiers exacts vers l'infini positif.
hmakholm a laissé Monica le

65
//method 1
Math.ceil(); // rounds up
Math.floor(); // rounds down
Math.round(); // does method 2 in 1 call

//method 2
var number = 1.5; //float
var a = parseInt(number); // to int
number -= a; // get numbers on right of decimal

if(number < 0.5) // if less than round down
    round_down();
else // round up if more than
    round_up();

un ou une combinaison résoudra votre question


10
total = Math.round(total);

Devrait le faire.


8

Utilisez Math.roundpour arrondir le nombre à l'entier le plus proche:

total = Math.round(x/15*100);

4

une solution très succincte pour arrondir un flotteur x:

x = 0|x+0.5

ou si vous voulez juste poser votre flotteur

x = 0|x

c'est un bit ou avec int 0, qui supprime toutes les valeurs après la décimale

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.