Konwersje typów zmiennoprzecinkowe
A pływaka wartość zamienioną na podwójne lub long double, lub podwójnego konwertowane na long double, poddawany jest żadna zmiana w wartości.A double wartość zamienioną na pływaka wartość odpowiada dokładnie, jeśli jest to możliwe.Jeśli wartość nie może być przedstawiona dokładnie precyzji mogą zostać utracone.Jeśli wynik jest poza zakresem, zachowanie jest niezdefiniowane.Zobacz limity na stałe Floating-Point dla zakresu liczb zmiennoprzecinkowych typów.
Wartość zmienna jest konwertowany na wartość integralną, konwertując pierwszego długi, następnie z long wartość określoną wartość integralną.Część dziesiętną zmiennej wartości jest pomijany podczas konwersji do long.Jeśli wynik jest nadal zbyt duży, aby mieścił się w long, wynik konwersji jest niezdefiniowane.
Programu Microsoft
Podczas konwertowania double lub long double liczba zmiennoprzecinkowa do mniejszych liczbę zmiennoprzecinkową, wartość zmiennoprzecinkowa zmiennej jest obcinana kierunku zera po wystąpieniu niedomiar.Przepełnienie powoduje błąd w czasie wykonywania.Należy zauważyć, że kompilator Microsoft C mapuje long double do typu double.
KONIEC Microsoft szczególne
W następującej tabeli podsumowano konwersje z typów przestawne.
Konwersje typów zmiennoprzecinkowe
Od |
Do |
Metoda |
---|---|---|
Pływak |
char |
Konwertuj na long; Konwertuj long dochar |
Pływak |
krótkie |
Konwertuj na long; Konwertuj long do krótkie |
Pływak |
długie |
Obciąć na przecinka dziesiętnego.Jeśli wynik jest za duży, aby mógł być przedstawiony jako long, wynik jest niezdefiniowane. |
Pływak |
krótki niepodpisane |
Konwertuj na long; convert long to unsigned short |
Pływak |
unsigned long |
Konwertuj na long; convert long to unsigned long |
Pływak |
podwójne |
Zmienić reprezentacji wewnętrznej |
Pływak |
long double |
Zmienić reprezentacji wewnętrznej |
podwójne |
char |
Konwertuj na pływaka; Konwertuj pływaka dochar |
podwójne |
krótkie |
Konwertuj na pływaka; Konwertuj pływaka do krótkie |
podwójne |
długie |
Obciąć na przecinka dziesiętnego.Jeśli wynik jest za duży, aby mógł być przedstawiony jako long, wynik jest niezdefiniowane. |
podwójne |
krótki niepodpisane |
Konwertuj na long; Konwertuj long do krótko niepodpisane |
podwójne |
unsigned long |
Konwertuj na long; convert long to unsigned long |
podwójne |
Pływak |
Reprezentują jako pływaka.Jeśli double wartość nie może być przedstawiona dokładnie tak, jak pływaka, utrata precyzji.Jeśli wartość jest zbyt duży, aby być reprezentowana jako pływaka, wynik jest niezdefiniowane. |
long double |
char |
Konwertuj na pływaka; Konwertuj pływaka dochar |
long double |
krótkie |
Konwertuj na pływaka; Konwertuj pływaka do krótkie |
long double |
długie |
Obciąć na przecinka dziesiętnego.Jeśli wynik jest za duży, aby mógł być przedstawiony jako long, wynik jest niezdefiniowane. |
long double |
krótki niepodpisane |
Konwertuj na long; convert long to unsigned short |
long double |
unsigned long |
Konwertuj na long; convert long to unsigned long |
long double |
Pływak |
Reprezentują jako pływaka.Jeśli double wartość nie może być przedstawiona dokładnie tak, jak pływaka, utrata precyzji.Jeśli wartość jest zbyt duży, aby być reprezentowana jako pływaka, wynik jest niezdefiniowane. |
long double |
podwójne |
Longdouble wartość jest traktowana jako double. |
Konwersja z pływaka, podwójnego, lub long double wartości do unsigned long nie są dokładne, jeśli wartość konwertowany jest większe niż maksymalne dodatnie long wartości.