Wie kann ich in JavaScript auf ganze Zahlen runden?


91

Ich habe den folgenden Code, um einen bestimmten Prozentsatz zu berechnen:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

Was ich als Ergebnis haben möchte, ist die genaue Zahl 43und wenn die Summe ist 43.5, sollte sie gerundet werden44

Gibt es eine Möglichkeit, dies in JavaScript zu tun?

Antworten:


166

Verwenden Sie die Math.round()Funktion, um das Ergebnis auf die nächste Ganzzahl zu runden.


hat mir auch geholfen! :) Danke für den MDN Link Kumpel :)
Afzaal Ahmad Zeeshan

1
Das Guthaben für den Link geht an @Jeremy. Vielen Dank für das Einfügen - es hat viel mehr Spaß gemacht, mit der fünften Antwort, die ich jemals geschrieben habe, so viele Stimmen zu erhalten wie diese, was sicherlich auf den Link zurückzuführen war. :-)
Hmakholm verließ Monica

2
Wollte OP nicht aufrunden? Wenn ja, wäre Math.ceil () vielleicht besser geeignet
Martellalex

1
@martellalex: Aus der Frage ging hervor, dass das OP 43.333 auf 43, aber 43.5 auf 44 runden wollte, was genau dem Verhalten von ECMAScript Math.round () entspricht, auf das nächste zu runden und exakte halbe Ganzzahlen in Richtung positive Unendlichkeit zu laufen.
Hmakholm verließ Monica

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

entweder eine oder eine Kombination wird Ihre Frage lösen


10
total = Math.round(total);

Sollte es tun.


8

Verwenden Sie Math.rounddiese Option , um die Zahl auf die nächste Ganzzahl zu runden:

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

4

eine sehr prägnante Lösung zum Runden eines Schwimmers x:

x = 0|x+0.5

oder wenn Sie nur Ihren Schwimmer auf den Boden legen wollen

x = 0|x

Dies ist bitweise oder mit int 0, wodurch alle Werte nach der Dezimalstelle gelöscht werden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.