float a;
a= 9/5;
|
Jika anda mengharapkan bahwa nilai yang didapat adalah 1.8, maka anda akan kecewa, karena angka yang didapat adalah 1. Kenapa ini terjadi?.
Ada aturan-aturan pengkonversian data yang berlaku dalam suatu operasi perhitungan, diantaranya :
1. Jika suatu bilangan bulat dioperasikan dengan bilangan bulat, maka nilai yang didapat adalah bilangan bulat pula.
2. Operasi perhitungan dilakukan berdasarkan tipe bilangan yang terbesarnya. Jadi jika ada suatu perhitungan antara int dengan long, maka komputer akan memperlakukan int sebagai long.
Untuk mengkonversi suatu variabel menjadi suatu variabel yang berbeda tipe, maka bisa dilakukan dengan type cast. Caranya adalah dengan menulis tipe data yang diinginkan diapit dengan tanda kurung. Contoh :
float a,b;
a=(float)9/5;
b=(float)(9/5);
|
Pada perintah a=(float) 9/5, maka angka 9 akan dikonversikan menjadi float sehingga perintah tersebut akan menghasilkan nilai 1.8, tetapi jika perintah b=(float)(9/5) dikerjakan maka akan menghasilkan nilai 1.0 karena yang dikerjakan duluan adalah 9/5 yang menghasilkan nilai 1 yang kemudian dikonversikan ke dalam bentuk float.
Konversi tipe data juga terjadi dalam operasi penugasan / pengisian data terhadap variabel. Perhatikan perintah berikut :
#include <stdio.h>
#include <conio.h>
main()
{
char c;
int i;
float f;
f=65.9;
i=f;
c=i;
printf("F : %f\n",f);
printf("I : %d\n",i);
printf("C : %c\n",c);
getch();
return 0;
}
|
Jika dieksekusi, akan menghasilkan :
F : 65.900002
I : 65
C : A
|
Keterangan :
- f=65.9; pengisian nilai 65.9 ke variabel f
- i=f; pengisian nilai f ke variabel i. Dalam baris ini terjadi konversi dari flo`t ke int. Pengkonversian float ke int selalu menghilangan angka pecahannya, dan tidak terjadi pembulatan.
- c=i; pengisian nilai i ke variabel c. Dalam baris ini terjadi konversi dari int ke char.
0 comments:
Posting Komentar