Partager via


Conversions de types à virgule flottante

Une valeur float converti en double ou à long double, ou un double converti en long double, n'entraîne aucune modification de la valeur.Une valeur de double convertie en une valeur float est représentée exactement, si possible.La précision peut être annulé 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 sur long, puis de la valeur de long à la valeur intégrale spécifique.la partie décimale de la valeur flottante est ignorée dans la conversion à long.Si le résultat est toujours trop grand pour être contenu dans long, la conversion est pas défini.

Spécifique à Microsoft

La conversion d'un nombre à virgule flottante de double ou d' long double à un plus petit nombre à virgule flottante, la valeur de la variable en virgule flottante est tronquée du côté de zéro alors un dépassement de capacité se produit.un dépassement de capacité provoque une erreur d'exécution.Notez que le compilateur C Microsoft mappe long double de taper double.

détail de FIN Microsoft

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

conversions des types à virgule flottante

From

Pour

Méthode

float

char

Converti en long; converti long à char

float

short

Converti en long; converti long à short

float

long

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

float

unsigned short

Converti en long; converti long à unsigned short

float

unsigned long

Converti en long; converti long à unsigned long

float

double

représentation interne de modification

float

long double

représentation interne de modification

double

char

Converti en float; converti float à char

double

short

Converti en float; converti float à short

double

long

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

double

unsigned short

Converti en long; converti long à unsigned short

double

unsigned long

Converti en long; converti long à unsigned long

double

float

Représentation sous forme float.si la valeur de double ne peut pas être représentée exactement comme float, la 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

Converti en float; converti float à char

long double

short

Converti en float; converti float à short

long double

long

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

long double

unsigned short

Converti en long; converti long à unsigned short

long double

unsigned long

Converti en long; converti long à unsigned long

long double

float

Représentation sous forme float.si la valeur de double ne peut pas être représentée exactement comme float, la 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 de longdouble est traitée comme une double.

Les conversions de float, de double, ou les valeurs des long double à unsigned long ne sont pas précises si la valeur est convertie est supérieure à la valeur positive maximale de long .

Voir aussi

Concepts

Conversions d'assignation