Qu'est-ce que le flotteur en Java?
J'ai écrit ce code:
float b = 3.6;
et j'obtiens ceci:
Erreur:non résolu problème de compilation: Incompatibilité de Type: impossible de convertir de double float
Pourquoi? Quelle est la définition de float
?
- Double Possible de Java: Pourquoi avez-vous besoin de spécifier un " f " dans un flotteur littérale?
- Ce n'est pas un doublon de cette question. Cette question demande pourquoi il ne veut pas compiler (pour laquelle la réponse est: "vous devez ajouter un
f
à la lettre"), tandis que l'autre question vous demande pourquoi vous devez ajouter lef
. Même si elles sont liées, il n'est pas un doublon. - Voir meta.stackexchange.com/questions/217401/... . Les réponses à la question sont les réponses à cette question.
Vous devez vous connecter pour publier un commentaire.
En Java, lorsque vous tapez un nombre décimal comme
3.6
, ses interprété comme undouble
.double
est un 64 bits de précision IEEE 754 virgule flottante, tandis quefloat
est un 32 bits de précision IEEE 754 en virgule flottante. Comme unfloat
est moins précis qu'undouble
, la conversion ne peut pas être effectuée de façon implicite.Si vous souhaitez créer un flotteur, vous devez mettre fin à votre numéro
f
(c'est à dire:3.6f
).Pour plus d'explication, voir le les types de données primitifs définition de la Java tutoriel.
Faire
Le truc, c'est que des nombres décimaux par défaut double. Et depuis deux ne rentre pas dans le flotteur, vous avez à dire explicitement que vous intentionnellement définir un flotteur. Alors, allez avec:
En JAVA, des valeurs comme:
Est supposé que double et pas float.
Vous pouvez également effectuer un cast dans le but de résoudre le problème:
float b = (float) 3.5
;Une autre solution:
float b = 3.5f
;