Jak mogę zaokrąglić liczby całkowite w JavaScript?


93

Mam następujący kod, aby obliczyć określony procent:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

Chcę otrzymać dokładną liczbę 43i jeśli jest 43.5to suma , należy ją zaokrąglić do44

Czy można to zrobić w JavaScript?

Odpowiedzi:


169

Użyj Math.round()funkcji, aby zaokrąglić wynik do najbliższej liczby całkowitej.


mi też pomogło! :) Dzięki za kumpla z linkiem do MDN :)
Afzaal Ahmad Zeeshan

1
Kredyt za link należy do @Jeremy. Dzięki za wstawienie go - rozpoczęcie od SO dużo przyjemniej było, że piąta odpowiedź, którą kiedykolwiek napisałem, otrzymała tyle głosów, co ta, co z pewnością było spowodowane linkiem. :-)
hmakholm zostawił Monikę

2
Czy OP nie chciał zaokrąglić W GÓRĘ? Jeśli tak, może Math.ceil () byłaby bardziej odpowiednia
martellalex,

1
@martellalex: Z pytania wynika, że ​​OP chciał zaokrąglić 43,333 do 43, a 43,5 do 44, co dokładnie odpowiada zachowaniu Math.round () modułu ECMAScript polegającego na zaokrąglaniu do najbliższej i wykonywaniu dokładnych pół liczb całkowitych w kierunku dodatniej nieskończoności.
hmakholm zostawił Monikę

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

jedno lub połączenie rozwiąże Twoje pytanie



8

Użyj, Math.roundaby zaokrąglić liczbę do najbliższej liczby całkowitej:

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

4

bardzo zwięzłe rozwiązanie do zaokrąglania liczby zmiennoprzecinkowej x:

x = 0|x+0.5

lub jeśli chcesz po prostu wyłożyć podłogę na podłogę

x = 0|x

jest to bitowe lub z wartością int 0, która usuwa wszystkie wartości po przecinku

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.