Come posso arrotondare a numeri interi in JavaScript?


92

Ho il seguente codice per calcolare una certa percentuale:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

Quello che voglio ottenere come risultato è il numero esatto 43e se il totale è 43.5dovrebbe essere arrotondato a44

C'è un modo per farlo in JavaScript?

Risposte:


167

Usa la Math.round()funzione per arrotondare il risultato al numero intero più vicino.


aiutato anche me! :) Grazie per l'amico di collegamento MDN :)
Afzaal Ahmad Zeeshan

1
Il merito del collegamento va a @Jeremy. Grazie per averlo inserito - è stato molto più divertente iniziare con SO avere la quinta risposta che ho mai scritto ottenere tanti voti quanti ne ha ricevuti questa, il che era sicuramente dovuto al collegamento. :-)
hmakholm ha lasciato Monica il

2
OP non voleva arrotondare? Se è così forse Math.ceil () sarebbe più appropriato
martellalex

1
@martellalex: Dalla domanda, l'OP voleva che 43.333 arrotondasse a 43 ma 43.5 arrotondasse a 44, che corrisponde esattamente al comportamento di Math.round () di ECMAScript di arrotondamento al più vicino e l' esecuzione di metà interi esatti verso l'infinito positivo.
hmakholm ha lasciato Monica l'

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();

uno o una combinazione risolverà la tua domanda


10
total = Math.round(total);

Dovrebbe farlo.


8

Utilizzare Math.roundper arrotondare il numero all'intero più vicino:

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

4

una soluzione molto succinta per arrotondare un float x:

x = 0|x+0.5

o se vuoi solo pavimentare il tuo galleggiante

x = 0|x

questo è un bit per bit o con int 0, che elimina tutti i valori dopo il decimale

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.