Još malo o podacima, operatorima, ...
5. Pretvorba tipova podataka
5.2. Zadana ili eksplicitna pretvorba tipova podataka
Ako je potrebno „zaobići” automatsku pretvorbu, moguće ju je zadati eksplicitno. Tada takva pretvorba ima viši prioritet, a to znači da će se obaviti bez obzira na pravila za automatsku pretvorbu. U takvim se slučajevima koristi operator eksplicitne pretvorbe, tzv. cast operator. Opći oblik izraza za eksplicitnu pretvorbu je
(tip podataka) operand;
Zagrade su oznake cast operatora, a operand može biti varijabla, konstanta ili neki izraz.
Primjerice, ako je varijabla d tipa double, i tipa int, a f tipa float, pri izvršavanju naredbe
i = (int)(d+1.234);
nakon računanja izraza d+1.234 koji je tipa double, rezultatu se odbacuje decimalni dio i cijeli se dio pridružuje varijabli i.
Za iste varijable, prilikom izračunavanja izraza
f=(float)((int)d+1);
najprije se varijabli d zanemaruje decimalni dio, zbog cast operatora ispred nje (int)d, nakon toga se dobivena cjelobrojna vrijednost povećava za 1 i nakon toga pretvara u realan broj koji se pridružuje varijabli f.
Primjer
Koju će vrijednost poprimiti varijabla i nakon naredbi:
int i;double d = 124.56;
i = d;
a) i = 124.56
b) i = 124
c) i = 125
d) zbog različitosti tipova podataka izraz je pogrešan
Rješenje: b), jer cjelobrojna vrijednost koja se pridružuje varijabli i dobije se odbacivanjem, a ne zaokruživanjem decimalnog dijela.