Wat is float in Java?

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. doubleis een 64-bits precisie IEEE 754 floating point, terwijl floateen 32-bits precisie IEEE 754 floating point is. Omdat een floatminder 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:

  1. 8.5
  2. 3.9
  3. (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;

Other episodes