J'ai écrit ce code:
float b = 3.6;
et j'obtiens ceci:
Erreur: problème de compilation non résolu: Incompatibilité de type: impossible de convertir de double en float
Pourquoi? Quelle est la définition de float
?
java
floating-point
t0mkaka
la source
la source
f
au littéral»), tandis que l'autre question demande pourquoi vous devez ajouter lef
. Bien qu'ils soient liés, ce n'est pas un doublon.Réponses:
En Java, lorsque vous tapez un nombre décimal comme
3.6
, il est interprété comme undouble
.double
est une virgule flottante IEEE 754 de précision 64 bits, tandisfloat
qu'une virgule flottante IEEE 754 de précision 32 bits. Comme afloat
est moins précis qu'undouble
, la conversion ne peut pas être effectuée implicitement.Si vous souhaitez 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 .
la source
Fais-le
la source
Le fait est que les nombres décimaux doublent par défaut. Et comme double ne rentre pas dans float, vous devez dire explicitement que vous définissez intentionnellement un float. Alors allez-y avec:
la source
En JAVA, des valeurs telles que:
Est supposé double et non flottant .
Vous pouvez également effectuer un casting pour résoudre le problème:
float b = (float) 3.5
;Une autre solution:
float b = 3.5f
;la source