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?

je ne sais pas
la source

Réponses:

167

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

Hmakholm a laissé Monica
la source
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

Canard
la source
10
total = Math.round(total);

Devrait le faire.

Phil
la source
8

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

total = Math.round(x/15*100);
Gombo
la source
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

Karo Castro-Wunsch
la source