web-dev-qa-db-fra.com

Qu'est-ce que float en Java?

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?

89
t0mkaka

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 floatest 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] .

168
Nicolas

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

37
Jigar Joshi

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;
13
Jan Zyka

En Java, des valeurs telles que:

  1. 8.5
  2. 3,9
  3. (etc..)

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;

6
Carlos Sá