Ich kann anscheinend keine Antwort auf eine einfache Frage finden: Wie runde ich eine Zahl auf die nächste auf int
?
Wenn zum Beispiel die Zahl 0,2, 0,7, 0,2222, 0,4324, 0,99999 ist, möchte ich, dass das Ergebnis 1 ist.
Soweit habe ich
int b = (int) Math.ceil(a / 100);
Es scheint jedoch nicht den Job zu machen.
a
einen ganzzahligen Typ.Antworten:
Math.ceil()
ist die richtige Funktion zum Aufrufen. Ich vermute, esa
ist eineint
, diea / 100
eine ganzzahlige Arithmetik durchführen würde. Versuchen Sie esMath.ceil(a / 100.0)
stattdessen.Ausgänge:
Siehe http://ideone.com/yhT0l
quelle
a
ist einint
in diesem Beispiel, und es funktioniert wie vorgeschlagen. Wenn dabeiint / float
das Ergebnis ist einfloat
, wie in der Ausgabe unter Beweis gestellt. Probieren Sie den Link aus.Ich weiß nicht, warum Sie durch 100 teilen, aber hier meine Annahme
int a;
oder
quelle
Dies schien den perfekten Job zu machen. Arbeitete jedes Mal.
quelle
10 Jahre später hat mich dieses Problem immer noch erwischt.
Das ist also die Antwort auf diejenigen, die zu spät sind wie ich.
Das funktioniert nicht
Das Ergebnis
a / 100
ist eine ganze Zahl und gerundet, sodass Math.ceil nichts dagegen tun kann.Sie müssen dabei die gerundete Operation vermeiden
Jetzt gehts.
quelle
Der einfachste Weg, dies zu tun, ist einfach: Sie erhalten einen Float oder Double und möchten, dass er in die nächste Aufrundung umgewandelt wird. Dann funktioniert
System.out.println((int)Math.ceil(yourfloat));
es einfach perfektquelle
Angenommen, a ist doppelt und wir brauchen eine gerundete Zahl ohne Dezimalstelle. Verwenden Sie die Funktion Math.round ().
Das ist meine Lösung.
quelle