I Java behöver du inte en uttrycklig konvertering för att ändra en "float" till en "dubbel". Java marknadsför automatiskt "float" till "dubbel" vid behov. Detta kallas * breddande omvandling * eftersom `dubbel` har ett större intervall och precision än` float '.
Så här fungerar det:
`` `Java
offentlig klass floattodouble {
public static void main (String [] args) {
float myfloat =3.14f; // Observera att "f" -suffixet är avgörande för floatlitteratur.
dubbel mydouble =myfloat; // Implicit Conversion
System.out.println ("float:" + myfloat);
System.out.println ("dubbel:" + mydouble);
}
}
`` `
Linjen `dubbel mydouble =myfloat;` konverterar implicit `float '-värdet till en" dubbel ". Ingen gjutning behövs. Java hanterar konverteringen sömlöst.
Om du skulle utföra aritmetiska operationer som involverar "float" och "dubbel", skulle "float" automatiskt marknadsföras till "dubbel" före beräkningen.
Medan du * kan * uttryckligen kasta den med '(dubbel) myfloat', är det överflödigt eftersom den implicita konverteringen redan hanteras korrekt och effektivt av Java -kompilatorn:
`` `Java
Dubbel mydoubleExplicit =(dubbel) myfloat; // Explicit, men onödigt
`` `
I nästan alla fall föredras den implicita omvandlingen för bättre läsbarhet och korthet. Den uttryckliga rollen kanske bara är användbar i situationer där du vill göra konverteringen mycket uttrycklig för läsbarhet i komplex kod eller för att betona att du är medveten om potentiell precisionsförlust (men i detta fall från flottör till dubbelt är det minimalt jämfört med andra omvandlingar).