Frage von Alphonse, 46

Java Programmieren- wie wird Double zu Int?

Ich möchte einen Double Wert in einen Int Wert umformen. Laut Internet geht das so:

int a = 394.393;

 int zahl = a.intValue();

Darauf folgt die Fehlermeldung "double cannot be dereferenced" Ich bin ein blutiger Anfänger und weiß damit noch nicht viel anzufangen...Hilfe?

Expertenantwort
von KnusperPudding, Community-Experte für Java, 4

Ich möchte einen Double Wert in einen Int Wert umformen

Wie du sicherlich bereits weißt, hat Double Nachkommastellen und Integer Werte sind Ganzzahlen. Demnach wäre die Frage wie du damit umgehen willst:

Willst du diese einfach "abschneiden"? Willst du runden?

Die erste und einfache Methode ist der "cast". Du versuchst eine Variable in eine andere Variable mit anderem Datentypen zuzuweisen:

double a = 123.556;
int b = (int) a;

hierbei werden jedoch aber einfach die Nachkommastellen komplett ignoriert und du erhälst nur : 123.

Was deinen Ansatz betrifft:

double a = 394.393;
int zahl = a.intValue();

so scheitert es an der Tatsache, dass du die primitiven Datentypen verwendest, welche keine Methoden haben. - Bedenke Bitte auch hier: Nachkommastellen werden nicht berücksichtigt.

Double a = 394.393;
int zahl = a.intValue();

Solltest du die Rundung berücksichtigen wollen, empfiehlt sich hier die Klasse Math:

double a = 394.55;
double b = Math.round(a);
Antwort
von Alphonse, 26

Einmal für alle,
Es sollte so heißen(Tippfehler):

double a = 394.393;

Antwort
von Roach5, 23

Was du machen möchtest nennt sich Typecasting. Der Standard-typecast wirft einfach die Dezimalentwicklung weg, aus 394.393 wird also 394, und zwar so:

double a = 394.393;
int a_umgewandelt = (int) a;

Immer in Klammern davorschreiben, in welchen  Datentyp umgewandelt wird. Welche Vorschriften diese Umwandlungen befolgen, kannst du nachlesen, indem du "java typecasting" googlest.

LG

Keine passende Antwort gefunden?

Fragen Sie die Community