Unverankerte Konvertierungen

Ein Objekt vom Typ float konvertiert werden kann sich auf mehrere präziser Typ float, d. h. die Konvertierung ursachen kein Verlust des Schritts.Beispielsweise sind Konvertierungen von float zu double oder double zu long double sicher, und der Wert bleibt unverändert.

Ein Objekt vom Typ float konvertiert werden kann auch auf kleiner präziser Typ, wenn es in einem Bereich, der von diesem Typ darstellbar ist.(Siehe Es hin- und herbewegende Grenzen für die Bereiche vom Typ float). Wenn der ursprüngliche Wert nicht exakt dargestellt werden kann, kann er dem nächsthöheren oder nächsten niedrigeren darstellbaren Wert konvertiert werden.Wenn kein solcher Wert vorhanden ist, ist das Ergebnis nicht definiert.Betrachten Sie das folgende Beispiel:

cout << (float)1E300 << endl;

Der maximale Wert, der vom Typ float 3.402823466E38 darstellbar ist, ist wesentlich kleinere Zahl als eine der 1E300.Daher wird die Zahl auf die unendlich konvertiert, und das Ergebnis ist 1.#INF.

Siehe auch

Referenz

Standardkonvertierungen