Převody typů s pohyblivou čárkou
A plovoucí hodnotu převedenou na dvojité nebo long double, nebo dvojité převedeny na long double, podroben žádná změna hodnoty.A dvojité hodnotu převedenou na plovoucí hodnota představuje přesně, pokud je to možné.Přesnost mohou být ztraceny, pokud nelze přesně reprezentovat hodnoty.Výsledkem je mimo rozsah, chování nedefinovaná.Viz omezení konstanty Floating-Point pro rozsah typů s plovoucí desetinnou čárkou.
Pohyblivou hodnotou je převeden na integrální hodnota první převedením na dlouhý, pak z dlouhé konkrétní hodnotu nedílnou.Za hodnotu s plovoucí desetinnou zahozena při převodu na dlouhý.Pokud výsledkem je stále příliš velké a nevejde se do dlouhý, výsledek převodu není definován.
Konkrétní společnosti Microsoft
Při převodu dvojité nebo long double číslo s plovoucí desetinnou čárkou menší desetinné číslo, hodnota proměnné s plovoucí desetinnou čárkou je zkrácen směrem k nule, dojde podtečení.Přetečení způsobí chybu běhu.Poznámka, která mapuje kompilátor Microsoft C long double k zadání dvojité.
Konec konkrétní společnosti Microsoft
Následující tabulka shrnuje plovoucí typy převodů.
Převody typů s pohyblivou čárkou
Od |
Akce |
Metoda |
---|---|---|
float |
char |
Převést na dlouhý; převést dlouhý nachar |
float |
short |
Převést na dlouhý; převést dlouhý na krátké |
float |
long |
Zkraťte na desetinné čárky.Pokud výsledek je příliš velký, je znázorněno jako dlouhý, výsledkem nedefinovaná. |
float |
unsigned short |
Převést na dlouhý; convert long to unsigned short |
float |
unsigned long |
Převést na dlouhý; convert long to unsigned long |
float |
double |
Změna vnitřní reprezentace |
float |
long double |
Změna vnitřní reprezentace |
double |
char |
Převést na plovoucí; převést plovoucí nachar |
double |
short |
Převést na plovoucí; převést plovoucí na krátké |
double |
long |
Zkraťte na desetinné čárky.Pokud výsledek je příliš velký, je znázorněno jako dlouhý, výsledkem nedefinovaná. |
double |
unsigned short |
Převést na dlouhý; převést dlouhý na nepodepsané krátké |
double |
unsigned long |
Převést na dlouhý; convert long to unsigned long |
double |
float |
Představují jako plovoucí.Pokud dvojité hodnota nemůže být reprezentován přesně jako plovoucí, dojde ke ztrátě přesnosti.Pokud hodnota je příliš velká a nelze je jako plovoucí, výsledkem nedefinovaná. |
long double |
char |
Převést na plovoucí; převést plovoucí nachar |
long double |
short |
Převést na plovoucí; převést plovoucí na krátké |
long double |
long |
Zkraťte na desetinné čárky.Pokud výsledek je příliš velký, je znázorněno jako dlouhý, výsledkem nedefinovaná. |
long double |
unsigned short |
Převést na dlouhý; convert long to unsigned short |
long double |
unsigned long |
Převést na dlouhý; convert long to unsigned long |
long double |
float |
Představují jako plovoucí.Pokud dvojité hodnota nemůže být reprezentován přesně jako plovoucí, dojde ke ztrátě přesnosti.Pokud hodnota je příliš velká a nelze je jako plovoucí, výsledkem nedefinovaná. |
long double |
double |
Dlouhýdvojité hodnota je považována za dvojité. |
Převody z plovoucí, dvojité, nebo long double hodnoty unsigned long nejsou přesné, pokud je převáděna hodnota větší než maximální kladné dlouhý hodnotu.