403 Stimmen

Wie rundet man das Ergebnis einer Integer-Division auf?

Ich denke insbesondere darüber nach, wie ich Paginierungssteuerelemente anzeigen soll, wenn ich eine Sprache wie C# oder Java verwende.

Wenn ich x Elemente habe, die ich in Abschnitten von y pro Seite anzeigen möchte, wie viele Seiten werden benötigt?

1 Stimmen

Fehlt mir etwas? y/x + 1 funktioniert gut (vorausgesetzt, Sie wissen, dass der /-Operator immer abrundet).

69 Stimmen

@ rikkit - wenn y und x gleich sind, ist y/x + 1 auch eins zu hoch.

1 Stimmen

Für alle, die dies gerade erst entdecken, antwortet diese Antwort auf eine doppelte Frage überflüssige Konvertierungen in doppelte und vermeidet Überlaufprobleme, zusätzlich zu einer klaren Erklärung.

-3voto

Ich hatte ein ähnliches Bedürfnis, wo ich Minuten in Stunden und Minuten umwandeln musste. Was ich verwendet habe, war:

int hrs = 0; int mins = 0;

float tm = totalmins;

if ( tm > 60 ) ( hrs = (int) (tm / 60);

mins = (int) (tm - (hrs * 60));

System.out.println("Gesamtzeit in Stunden und Minuten = " + hrs + ":" + mins);

-5voto

Kibbee Punkte 64039

Sie möchten die Division mit Gleitkommazahlen durchführen und dann die Deckenfunktion verwenden, um den Wert auf die nächste ganze Zahl aufzurunden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X