public class AutoTypOmvandling {
public static void main(String[] args) {
System.out.println ("Automatisk typomvandling");
System.out.println ();
//Tilldela olika datatyper
byte a = 127; //8 bitar, min-värde -128 och max-värde 128
short b = a; //8 bitar in i 16 bitar
int c = a; //16 bitar in i 32 bitar
long d = a; //32 bitar in i 64 bitar
System.out.println (a + " -> " + b + " -> " + c + " -> " + d);
System.out.println ();
//Tilldela ett flyttalsvärde av en datatyp till en större
float u = 1.25F; //32 bitar
double v = u; //32 bitar in i 64 bitar
System.out.println (u + " ---> " + v);
System.out.println ();
//Tilldela ett heltalsvärde till en flyttalsvariabel utan att noggrannhet förloras
int p = 25000; //32 bitar
float x1 = p; //32 bitar in i 32 bitar
double x2 = p; //32 bitar in i 64 bitar
System.out.println (p + " ---> " + x1 + ", " + x2);
System.out.println ();
//Tilldelade heltal long 64 bitar
long q = 1234567L; //64 bitar
float y1 = q; //64 bitar in i 32 bitar utan att förlora sitt värde
double y2 = q; //64 bitar in i 64 bitar
System.out.println (q + " ---> " + y1 + " ---> " + y2);
System.out.println ();
//Tilldela ett heltalsvärde till en flyttalsvariabel, noggrannhet förloras.
int r = 1234567890;
float u1 = r;
double u2 = r;
System.out.println (r + " ---> " + u1 + " --> " + u2);
System.out.println ();
long s = 1234567890123456789L;
float v1 = s;
double v2 = s;
System.out.println (s + " " + v1 + ", " + v2);
System.out.println ();
}
}
Utdata
Automatisk typomvandling
127 -> 127 -> 127 -> 127
1.25 ---> 1.25
25000 ---> 25000.0, 25000.0
1234567 ---> 1234567.0 ---> 1234567.0
1234567890 ---> 1.23456794E9 --> 1.23456789E9
1234567890 ---> 1.23456794E18, 1.23456789012345677E18