Typecasting
Iz E-študij, proste zakladnice študentskega znanja
Typecasting je angleški izraz in pomeni, da pretvorimo en podatkovni tip v drugega, da se izognemo določenim omejitvam pri podatkovnih tipih.
Pojavi se v več različnih programskih jezikih, najbolj značilni pa so Java, C, C++ in mnogi drugi sodobni objektno-orientirani programski jeziki
Primer typecastinga
float f = (float)1.55;
Z odebeljeno pisavo je označen typecasting.
int i = (int)f;
Spremenljivka f je bila typecastana v obliko integer, kar pomeni, da je f izgubil vse decimalke, ker so v zapisu integer lahko predstavljena le cela števila. Odvisno od izvedbe typecastinga bo sedaj i dobil vrednost 2 (zaokroževanje decimalk) ali 1 (rezanje decimalk).
Problemi pri typecastanju
Ker se pretvorba izvrši medtem ko je program pognan, prevajalnik ne more preverjati, ali bo določena pretvorba pravilna ali ne. Takim napakam pravimo semantične napake. Napake, ki se lahko pojavijo, so izguba natančnosti, pri določenih primerih tudi popolnoma nepričakovan rezultat.
Sledeči primer je dovolj dober dokaz, kako pride do nepričakovane napake, ker je podatkovni tip byte dovolj velik za razpon števil med -128 in +127, se bo število 300 pretvorilo v 44, kjer 300-256 (256 možnih kombinacij v bajtu) je 44:
int i = 300; byte b = (byte)i;