float (Référence C#)
Mise à jour : novembre 2007
Le mot clé float désigne un type simple qui stocke des valeurs 32 bits en virgule flottante. Le tableau suivant indique la plage de valeurs approximative et la précision fournies par le type float.
Type |
Plage approximative |
Précision |
Type .NET Framework |
---|---|---|---|
float |
±1.5 × 10−45 à ±3.4 × 1038 |
7 chiffres |
Littéraux
Par défaut, un littéral numérique réel situé à droite de l'opérateur d'assignation est considéré de type double. Par conséquent, si vous souhaitez initialiser une variable de type float, utilisez le suffixe f ou F, comme indiqué ci-après :
float x = 3.5F;
Si vous ne spécifiez aucun suffixe dans la déclaration ci-dessus, une erreur de compilation se produit, car vous essayez de stocker une valeur double dans une variable float.
Conversions
Vous pouvez combiner, au sein d'une expression, des types numériques intégraux et des types virgule flottante. Dans ce cas, les types intégraux sont convertis en types virgule flottante. L'expression est évaluée selon les règles suivantes :
Si l'un des types virgule flottante est double, le résultat de l'évaluation est aussi de type double ou de type bool dans des expressions relationnelles ou booléennes.
Si l'expression ne comporte pas de type double, le résultat de l'évaluation est de type float ou bool dans des expressions relationnelles ou booléennes.
Une expression en virgule flottante peut contenir les ensembles de valeurs suivants :
Zéro positif et zéro négatif
Nombre positif infini et nombre négatif infini
Valeur non numérique (NaN ou Not-a-Number)
Ensemble fini des valeurs différentes de zéro
Pour plus d'informations sur ces valeurs, consultez IEEE Standard for Binary Floating-Point Arithmetic, disponible sur le site Web IEEE.
Exemple
Dans l'exemple suivant, un int, un short et un float sont inclus dans une expression mathématique produisant un résultat float. (N'oubliez pas que float est un alias pour le type System.Single.) Notez l'absence de double dans l'expression.
class FloatTest
{
static void Main()
{
int x = 3;
float y = 4.5f;
short z = 5;
var result = x * y / z;
Console.WriteLine("The result is {0}", result);
Type type = result.GetType();
Console.WriteLine("result is of type {0}", type.ToString());
}
}
/* Output:
The result is 2.7
result is of type System.Single //'float' is alias for 'Single'
*/
Spécification du langage C#
Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.
4.1.6 Types virgule flottante
6.2.1 Conversions numériques explicites
Voir aussi
Concepts
Référence
Tableau des types intégraux (Référence C#)
Tableau des types intégrés (Référence C#)
Tableau des conversions numériques implicites (Référence C#)
Tableau des conversions numériques explicites (Référence C#)