Partager via


Conversions à partir des types à virgule flottante

Une valeur float convertie en valeur double ou long double, ou une valeur double convertie en long double, n'entraîne aucune modification de la valeur. Une valeur double convertie en valeur float est représentée exactement, si possible. La précision peut être perdue si la valeur ne peut pas être représentée exactement. Si le résultat est hors limites, le comportement n'est pas défini. Consultez Limites sur les constantes à virgule flottante pour la plage de types à virgule flottante.

Une valeur flottante est convertie en une valeur intégrale en convertissant d'abord en valeur long, puis une valeur long en valeur intégrale spécifique. La partie décimale de la valeur flottante est ignorée dans la conversion en long. Si le résultat est toujours trop grand pour être contenu dans long, la conversion n'est pas définie.

Section spécifique à Microsoft

Lors de la conversion d'un nombre à virgule flottante double ou long double en un plus petit nombre à virgule flottante, la variable de la virgule flottante est tronquée vers zéro en cas de dépassement de capacité négatif. Un dépassement de capacité provoque une erreur d'exécution. Notez que le compilateur Microsoft C mappe long double en type double.

FIN de la section spécifique à Microsoft

Le tableau suivant répertorie les conversions des types de flottant.

Conversions depuis les types à virgule flottante

From

Pour

Méthode

float

char

Convertir en long. Convertir long en char

float

short

Convertir en long. Convertir long en short

float

long

Tronquer à la virgule décimale. Si le résultat est trop grand pour être représenté comme long, il n'est pas défini.

float

unsigned short

Convertir en long. Convertir long en unsigned short

float

unsigned long

Convertir en long. Convertir long en unsigned long

float

double

Modifier la représentation interne

float

long double

Modifier la représentation interne

double

char

Convertir en float. Convertir float en char

double

short

Convertir en float. Convertir float en short

double

long

Tronquer à la virgule décimale. Si le résultat est trop grand pour être représenté comme long, il n'est pas défini.

double

unsigned short

Convertir en long. Convertir long en unsigned short

double

unsigned long

Convertir en long. Convertir long en unsigned long

double

float

Représenter comme float. Si la valeur double ne peut pas être représentée exactement comme float, une perte de précision se produit. Si la valeur est trop grande pour être représentée comme float, le résultat n'est pas défini.

long double

char

Convertir en float. Convertir float en char

long double

short

Convertir en float. Convertir float en short

long double

long

Tronquer à la virgule décimale. Si le résultat est trop grand pour être représenté comme long, il n'est pas défini.

long double

unsigned short

Convertir en long. Convertir long en unsigned short

long double

unsigned long

Convertir en long. Convertir long en unsigned long

long double

float

Représenter comme float. Si la valeur double ne peut pas être représentée exactement comme float, une perte de précision se produit. Si la valeur est trop grande pour être représentée comme float, le résultat n'est pas défini.

long double

double

La valeur long double est traitée comme double.

Les conversions de valeurs float, double, ou long double en unsigned long ne sont pas exactes si la valeur convertie est supérieure à la valeur long.

Voir aussi

Concepts

Conversions d'assignation