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 127
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
public class DoubleToIntDemo1 {
public static void main(String[] args) {
// Tilldela 99.95 till variabeln d av typen double
double d = 99.95;
System.out.println("Variabels värde: "+ d);
// Omvandling från double to int, från 64 till 32 bitar
int i = (int) d;
System.out.println("Konverterat till int: "+ i +" kr. Decimaler tas bort.");
}
}
Returnerar
Variabels värde: 99.95
Konverterat till int: 99 kr. Decimaler tas bort.
public class DoubleToIntDemo2 {
public static void main(String[] args) {
// Tilldelning värde 25.20 till variabeln tal1
double tal1 = 25.20;
System.out.println("double tal1 = "+ d);
// Använd klassen Math och dess metod round() för att omvandla en double till long
long tal2 = Math.round(tal1);
System.out.println("Avrundad long tal2 = "+ tal2);
//Variabeln tal2 konverteras till int och lagra värdet i variabel tal3
int tal3 = (int)tal2;
System.out.println("int tal3 = "+ tal3);
// Tilldela 25.50 till tal4 av typen double
double tal4 = 25.50;
System.out.println("double tal4 = "+ tal4);
// Konvertera tal4 till typen long och lagra värdet i variabel tal5
long tal5 = Math.round(tal4);
System.out.println("Avrundad long tal5 = "+ tal5);
// Konvertera tal5 till typen int och lagra värdet i variabel tal6
int tal6 = (int)tal5;
System.out.println("int tal6 = "+ tal6);
}
}
Returnerar:
double tal1 = 25.2
Avrundad long tal2 = 25
int tal3 = 25
double tal4 = 25.5
Avrundad long tal5 = 26
int tal6 = 26