Typkonvertierung

Status
Nicht offen für weitere Antworten.

p-flash

Aktives Mitglied
Hi,

wieso klappt hier eine automatische Typumwandlung:


Code:
public class Calculation
{
  public static void main(String[] arguments)
  {
	byte a = 127;
	byte b = 127;
	int result;
	result = a + b;
	System.out.println("Ergebnis = " + result);
  }
}
Aber hier nicht????

Code:
public class Calculation
{
  public static void main(String[] arguments)
  {
	int a = 2147483647;
	int b = 2147483647;
	long result;
	result = a + b;
	System.out.println("Ergebnis = " + result);
  }
}

Danke.

p-flash
 

L-ectron-X

Gesperrter Benutzer
Code:
public class Calculation
{
  public static void main(String[] arguments)
  {
   int a = 2147483647;
   int b = 2147483647;
   long result;
   result = (long)a + (long)b;
   System.out.println("Ergebnis = " + result);
  }
}
So gehts.
 
G

Guest

Gast
@ L-ectron-X
Warum macht er es aber beim ersten automatisch? und beim zweiten muss man es explizit machen?

@dotlens
Aber int liegt doch auch als long vor. oder was meinst du?


p-flash
 

L-ectron-X

Gesperrter Benutzer
Wenn bei Berechnungen Zahlen eines Typs ihren Wertebereich verlassen, kommt es zu einem Überlauf.
In Deinem Beispiel wird das Ergebnis größer als der Wertebereich von int sein. Daher muss wenigstens eine der Variablen vom nächst größeren Typs sein.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben