J'ai écrit ce code:
float b = 3.6;
et je reçois ceci:
Erreur: problème de compilation non résolu: Incompatibilité de type: impossible de convertir du double en float
Pourquoi? Quelle est la définition de float
?
En Java, lorsque vous tapez un nombre décimal sous la forme 3.6
, il est interprété comme un double
. double
est une virgule flottante IEEE 754 de précision 64 bits, tandis que float
est une virgule flottante IEEE 754 de précision 32 bits. Comme float
est moins précis qu'un double
, la conversion ne peut pas être effectuée implicitement.
Si vous voulez créer un float, vous devez terminer votre numéro par f
(c'est-à-dire: 3.6f
).
Pour plus d'explications, consultez le définition des types de données primitifs du tutoriel Java] .
Fais-le
float b= 3.6f;
Un littéral à virgule flottante est de type float s'il est suffixé de ASCII lettre F ou f; sinon, son type est double et il peut éventuellement être suffixé d'un ASCII lettre D ou d
Le problème est que les nombres décimaux doublent par défaut. Et comme double ne rentre pas dans le flottant, vous devez indiquer explicitement que vous définissez intentionnellement un flottant. Alors allez avec:
float b = 3.6f;
En Java, des valeurs telles que:
Est supposé comme double et non float.
Vous pouvez également effectuer un casting afin de résoudre le problème:
float b = (float) 3.5
;
Une autre solution:
float b = 3.5f
;