Konversi tipe adalah bentuk punning tipe, teknik yang digunakan dalam ilmu komputer dan pemrograman perangkat lunak komputer di mana tipe data dari entitas tertentu diubah menjadi tipe data yang berbeda. Konsep tipe punning muncul untuk bekerja di sekitar sistem tipe tertentu dari bahasa pemrograman sehingga efek tertentu dapat dicapai yang jika tidak akan sulit dilakukan dalam batas-batas definisi formal bahasa pemrograman. Konversi jenis, menjadi bentuk yang paling umum dari jenis punning, dimungkinkan di hampir semua bahasa pemrograman, meskipun beberapa bahasa menawarkan metode tambahan jenis punning, seperti union atau reinterpretasi. Beberapa panduan gaya pemrograman menyarankan untuk tidak menggunakan jenis punning, meskipun konversi jenis sering digunakan.
Konversi tipe juga kadang-kadang disebut sebagai typecasting atau paksaan, tergantung pada bahasa pemrograman yang digunakan. Setiap bahasa pemrograman memiliki aturan tentang bagaimana konversi tipe dapat digunakan dengan sukses. Secara umum, konversi dapat terjadi pada tipe atau objek dasar.
Ada beberapa tipe data dasar atau kelas tipe data. Salah satu tipe data yang umum digunakan dalam operasi matematika adalah bilangan bulat, atau bilangan biasa, yang dapat berkisar hingga ribuan atau jutaan, tergantung pada jumlah bit dalam lebarnya. Misalnya, bilangan bulat 32-bit dapat berkisar dari nol hingga 4,294,967,295, atau -2,147,483,648 hingga 2,147,483,648. Jenis lainnya adalah bilangan titik-mengambang, yang pada dasarnya adalah bilangan apa pun dengan titik desimal.
Karakter tunggal, seperti huruf alfabet atau tanda baca, juga dapat digunakan sebagai tipe data. Tipe data string adalah grup atau urutan angka dan/atau huruf apa pun tanpa putus; panjang string berubah-ubah, tetapi ukuran atau batasnya biasanya ditentukan dalam bahasa pemrograman. Tipe data tertua adalah Boolean, yang hanya benar atau salah. Kelas tipe lainnya termasuk aljabar, fungsi, data mesin, dan objek. Misalnya, dalam bahasa berorientasi objek, leluhur suatu objek dapat menggunakan tipe objek induk sehingga interaksinya satu sama lain berjalan lebih lancar.
Spesifik konversi tipe benar-benar tidak ikut bermain sampai aturan bahasa pemrograman tertentu dipertimbangkan. Beberapa aturan bahasa lebih lanjut menentukan apakah konversi tipe implisit atau eksplisit. Konversi tipe implisit paling sering disebut paksaan dan biasanya terjadi pada saat program dikompilasi dari kode sumber menjadi program yang dapat dieksekusi. Ini bisa terjadi, katakanlah, jika beberapa tipe data digunakan dalam ekspresi dan kemudian perbandingan dijalankan. Konversi tipe dianggap tersirat, dan kompiler menanganinya secara otomatis; konversi tipe eksplisit didefinisikan dalam kode program. Bahasa pemrograman C membuat perbedaan antara keduanya, menyebut konversi tipe implisit sebagai paksaan, dan konversi tipe eksplisit sebagai pemeran.
Contoh sederhana dari konversi tipe umum adalah operasi matematika pada angka dalam program komputer. Program komputer yang menerima angka desimal, tipe data floating-point, sebagai input mungkin perlu mengubah angka menjadi tipe data integer untuk melakukan operasi matematika, atau sebaliknya. Konversi ini memungkinkan operasi untuk melanjutkan.