Pretvorba tipa je oblik kazivanja tipa, tehnika koja se koristi u računalnim znanostima i programiranju računalnog softvera u kojoj se tip podataka određenog entiteta mijenja u drugu vrstu podataka. Koncept punjenja tipova počeo je raditi oko specificiranog sustava tipova programskog jezika tako da se mogu postići određeni učinci koje bi inače bilo teško izvesti unutar granica formalne definicije programskog jezika. Pretvorba tipova, kao najčešći oblik iskazivanje znakova, moguća je u gotovo svim programskim jezicima, iako neki jezici nude dodatne metode označavanja tipova, kao što su ujedinjenje ili reinterpretacija. Neki vodiči za stilove programiranja sugeriraju da se ne iskazuje kažnjavanje tipa, iako se pretvorba tipa ionako često koristi.
Pretvorba tipa također se ponekad naziva i pretvaranje tipa ili prisila, ovisno o programskom jeziku koji se koristi. Svaki programski jezik ima pravila o tome kako se pretvorba tipova može uspješno koristiti. Općenito govoreći, pretvorbe se mogu odvijati na osnovnim tipovima ili objektima.
Postoji nekoliko temeljnih tipova podataka ili klasa tipova podataka. Jedan uobičajeni tip podataka koji se koristi u matematičkim operacijama su cijeli brojevi, ili obični brojevi, koji se mogu kretati u tisućama ili milijunima, ovisno o broju bitova u njihovoj širini. Na primjer, 32-bitni cijeli broj može se kretati od nule do 4,294,967,295, ili -2,147,483,648 do 2,147,483,648. Druga vrsta je broj s pomičnim zarezom, koji je u osnovi bilo koji broj s decimalnim zarezom.
Pojedinačni znakovi, kao što je slovo abecede ili interpunkcijski znak, također se mogu koristiti kao tip podataka. Vrsta podataka niza je bilo koja grupa ili niz brojeva i/ili slova bez prekida; duljine stringova su proizvoljne, ali se njihova veličina ili granica obično definira u programskom jeziku. Najstariji tip podataka je Boolean, koji je jednostavno ili istinit ili netočan. Druge klase tipova uključuju algebarske, funkcije, strojne podatke i objekte. Na primjer, u objektno orijentiranim jezicima, predak objekta može koristiti tip nadređenog objekta tako da njihova međusobna interakcija ide glatko.
Specifičnosti pretvorbe tipova doista ne dolaze u obzir sve dok se pravila određenog programskog jezika ne uzmu u obzir. Neka pravila jezika nadalje diktiraju je li pretvorba tipa implicitna ili eksplicitna. Implicitna pretvorba tipa najčešće se naziva prisila i obično se događa u vrijeme kada se program prevede iz izvornog koda u izvršni program. To se može dogoditi, recimo, ako se u izrazu koristi više vrsta podataka, a zatim se izvrši usporedba. Pretvorba tipa smatra se podrazumijevanom, a prevodilac njome upravlja automatski; eksplicitna konverzija tipa definirana je u kodu programa. Programski jezik C pravi razliku između to dvoje, nazivajući implicitnu pretvorbu tipa prisilom, a eksplicitnu pretvorbu tipa cast.
Jednostavan primjer uobičajene pretvorbe tipa bile bi matematičke operacije s brojevima u računalnim programima. Računalni program koji prima decimalni broj, tip podataka s pomičnim zarezom, kao ulaz možda će trebati pretvoriti broj u cjelobrojni tip podataka za izvođenje matematičkih operacija, ili obrnuto. Ova pretvorba omogućuje nastavak operacije.