Ik heb deze code geschreven:
float b = 3.6;
en ik krijg dit:
Fout:Onopgelost compilatieprobleem: Type komt niet overeen: kan niet converteren van double naar float
Waarom? Wat is de definitie van float
?
Antwoord 1, autoriteit 100%
Als u in Java een decimaal getal typt als 3.6
, wordt dit geïnterpreteerd als een double
. double
is een 64-bits precisie IEEE 754 floating point, terwijl float
een 32-bits precisie IEEE 754 floating point is. Omdat een float
minder nauwkeurig is dan een double
, kan de conversie niet impliciet worden uitgevoerd.
Als je een float wilt maken, moet je je nummer eindigen op f
(d.w.z.: 3.6f
).
Zie voor meer uitleg de primitieve gegevenstypendefinitie van de Java-zelfstudie .
Antwoord 2, autoriteit 23%
Maak het
float b= 3.6f;
Een letterlijke drijvende komma is van het type float als er een ASCII-letter F of f aan wordt toegevoegd; anders is het type dubbel en kan het optioneel worden voorzien van een ASCII-letter D of d
Antwoord 3, autoriteit 7%
Het punt is dat decimale getallen standaard verdubbelen. En aangezien dubbel niet in float past, moet je expliciet vertellen dat je opzettelijk een float definieert. Dus ga met:
float b = 3.6f;
Antwoord 4, Autoriteit 4%
In Java, waarden zoals:
- 8.5
- 3.9
- (enzovoort ..)
wordt verondersteld als dubbel en niet float .
U kunt ook een cast uitvoeren om het probleem op te lossen:
float b = (float) 3.5
;
een andere oplossing:
float b = 3.5f
;