Qu'est-ce que float en Java?
J'ai écrit ce code:
float b = 3.6;
Et je reçois ceci:
Error:Unresolved compilation problem: Type mismatch: cannot convert from double to float
Pourquoi? Quelle est la définition de float
?
4 réponses
En Java, lorsque vous tapez un nombre décimal comme 3.6
, Il est interprété comme un double
. double
est un virgule flottante IEEE 754 de précision 64 bits, tandis que float
est un virgule flottante IEEE 754 de précision 32 bits. Comme un float
est moins précis qu'un double
, la conversion ne peut pas être effectuée implicitement.
Si vous voulez créer un flottant, vous devez terminer votre numéro par f
(c'est-à-dire: 3.6f
).
Pour plus d'explications, consultez la définition des types de données primitifs du didacticiel Java.
Faites-le
float b= 3.6f;
Un littéral à virgule flottante est de type float s'il est suffixé d'une lettre ASCII F ou f; sinon son type est double et il peut éventuellement être suffixé d'une lettre ASCII D ou D.
La chose est que les nombres décimaux par défaut sont doubles. Et puisque double ne rentre pas dans float, vous devez dire explicitement que vous définissez intentionnellement un float. Alors allez avec:
float b = 3.6f;
En JAVA, des valeurs comme:
- 8.5
- 3.9
- (et ainsi de suite..)
Comme double et pas float.
Vous pouvez également effectuer une distribution afin de résoudre le problème:
float b = (float) 3.5
;
Une autre solution:
float b = 3.5f
;