Java Double in int umwandeln?

5 Antworten

Du sollst vermutlich ein sogenanntes Typecasting machen, wenn die Bedingung erfüllt ist. Das macht man beispielsweise so:

double meinDouble = 2.0;
int meinInt = (int) meinDouble;

Eine ganze Zahl, sprich dein Integer, hat keine Nachkommastellen und wird entsprechend ohne ausgegeben.

Alternativ kannst du die Ausgabe auch formatieren, statt die Zahl direkt auszugeben, was allerdings wesentlich schwerer zu erarbeiten ist. Das macht man mit String.Format. Schau dir dafür beispielsweise How to nicely format floating numbers to String without unnecessary decimal 0? auf Stackoverflow an.

Runden auf Integer:

Code:

Math.round(doubleZahl);

Runden auf zwei Nachkommastellen:

Code:

double zahl = 2.000778;
double rund = 0;

rund = Math.round(zahl*100)/100;

ändere

double d=(int)d;

zu

int i=(int)d;

Also eigentlich sollte, wenn der Nachkommawert 0 ist, die Ausgabe automatisch als int erfolgen.

Sprich: eigentlich sollte 2.0 automatisch als 2 und 2.01 auch als 2.01 ausgegeben werden.

Ansonsten kannst Du mit Math.floor(x) != x prüfen, ob nach Abschneiden der Nachkommastellen sich die Zahl ändert. Dann könntest Du die Nachkommastellen mit int y = (int)x; abschneiden.

Wie gibst du es denn aus? Vermutlich musst du in deiner Ausgabe einfach %d statt %f schreiben, also die Formatierung ändern.

Wenn du noch runden musst, siehe andere Antwort.