Freigeben über


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.

Siehe auch

Konzepte

Zuweisungskonvertierungen