Witam
Mam kolejne pytanie na tym forum :D
Otóż czytam pewną książkę do programowania i mam tam tabelkę dot. konwersji typów i pisze tam, że w przypadku konwersji wiekszego typu zmiennoprzecinkowego na mniejszy traci sie dokladnosc i ze wartosc moze sie nie zmiescić w typie float przez co otrzymuje sie wartosc niezdefiniowaną.
Jednak kod
float y = 555555555555555555555555555555555555.6
cout << y<<endl
Wyświetla na ekranie liczbę 555555560681785418846676753519214592.000000. To że liczba jest niedokładna to rozumiem ale dlaczego nie pojawia się wartość niezdefiniowana u mnie np przy konwersji zbyt duzej wartosci typu double do int liczba ta wynosi 2147483648.
A co się dzieje przy konwersji np long long do short? Według książki kopiowane są mniej znaczące bajty (oczywiście dla liczb przekraczajacych maksymalna wartość typu short) A może jest tak, że liczba przekraczając wartość maksymalną wraca do minimalnej i "liczy" dalej. (Chodzi mi o to że gdy mamy np typ który może przyjąć wartości od 0 do 200 i gdy przypiszemy do zmiennej tego typu liczbę 250 to ona przyjmie wartość 50.
Z góry dzięki.