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?

77
demandé sur james.garriss 2011-02-22 13:05:57

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.

155
répondu Nicolas 2011-02-22 10:22:12

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.

37
répondu Jigar Joshi 2011-02-22 14:40:35

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;
13
répondu Jan Zyka 2011-02-22 10:09:31

En JAVA, des valeurs comme:

  1. 8.5
  2. 3.9
  3. (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;

6
répondu Carlos Sá 2015-05-19 17:02:07