Konvertierungen von den Gleitkommatypen
Ein float-Wert, der double oder long doublekonvertiert werden, oder double , das long doublekonvertiert wird, stellt keine Änderung des Werts durch.Ein Double-Wert, der einem float-Wert konvertiert wird, exakt dargestellt wird, sofern dies möglich ist.Genauigkeit ist möglicherweise verloren, wenn der Wert nicht exakt dargestellt werden kann.Wenn das Ergebnis außerhalb des gültigen Bereichs liegt, ist das Verhalten nicht definiert.Weitere Informationen finden Sie unter Begrenzungen Gleitkommakonstanten für den Bereich von Gleitkommatypen.
Ein Gleitkommawert wird in einen ganzzahligen Wert konvertiert, indem zuerst long, aus dem long-Wert in den jeweiligen ganzzahligen Wert konvertiert.Der dezimale Teil des Gleitkommazahl wird in der Konvertierung in longverworfen.Wenn das Ergebnis immer noch zu groß ist, um in longpasst, wird das Ergebnis der Konvertierung nicht definiert.
Microsoft-spezifisch
Wenn eine double oder long double Gleitkommazahl zu einer kleineren Gleitkommazahl umgewandelt, wird der Wert der Float Variable in Richtung Null abgeschnitten, wenn ein Unterlauf auftritt.Ein Überlauf tritt ein Laufzeitfehler.Beachten Sie, dass der Microsoft C-Compiler long double zugeordnet wird, um doubleeinzugeben.
Microsoft ENDES bestimmten
In der folgenden Tabelle werden die Konvertierungen von den Typ float zusammen.
Konvertierungen von Gleitkommatypen
Von |
To |
Methode |
---|---|---|
float |
char |
Konvertieren zu long. Konvertieren long zu char |
float |
short |
Konvertieren zu long. Konvertieren long zu short |
float |
long |
Schneiden Sie dem Dezimalkomma ab.Wenn Ergebnis zu groß ist, um als longdargestellt werden soll, ist das Ergebnis nicht definiert. |
float |
unsigned short |
Konvertieren zu long. Konvertieren long zu unsigned short |
float |
unsigned long |
Konvertieren zu long. Konvertieren long zu unsigned long |
float |
double |
Interne Darstellung der Änderung |
float |
long double |
Interne Darstellung der Änderung |
double |
char |
Konvertieren zu float. Konvertieren float zu char |
double |
short |
Konvertieren zu float. Konvertieren float zu short |
double |
long |
Schneiden Sie dem Dezimalkomma ab.Wenn Ergebnis zu groß ist, um als longdargestellt werden soll, ist das Ergebnis nicht definiert. |
double |
unsigned short |
Konvertieren zu long. Konvertieren long zu short ohne Vorzeichen |
double |
unsigned long |
Konvertieren zu long. Konvertieren long zu unsigned long |
double |
float |
Geben Sie als floatdar.Wenn nicht genau double-Wert floatals dargestellt werden kann, tritt ein Genauigkeitsverlust auftreten.Beim Wert zu groß ist, um als floatdargestellt werden soll, ist das Ergebnis nicht definiert. |
long double |
char |
Konvertieren zu float. Konvertieren float zu char |
long double |
short |
Konvertieren zu float. Konvertieren float zu short |
long double |
long |
Schneiden Sie dem Dezimalkomma ab.Wenn Ergebnis zu groß ist, um als longdargestellt werden soll, ist das Ergebnis nicht definiert. |
long double |
unsigned short |
Konvertieren zu long. Konvertieren long zu unsigned short |
long double |
unsigned long |
Konvertieren zu long. Konvertieren long zu unsigned long |
long double |
float |
Geben Sie als floatdar.Wenn nicht genau double-Wert floatals dargestellt werden kann, tritt ein Genauigkeitsverlust auftreten.Beim Wert zu groß ist, um als floatdargestellt werden soll, ist das Ergebnis nicht definiert. |
long double |
double |
Der long wird als double-Wert doublebehandelt. |
Konvertierungen von float, doubleoder long double-Werten zu unsigned long sind nicht genau, wenn der Wert konvertiert wird, long positive größer als der maximale Wert ist.