Friday, October 21, 2011

Floating­ point

Di  dalam bab  yang terakhir  kita mempunyai beberapa permasalahan  dengan  angka­ angka yang bukanlah bilangan bulat. Kita disibukkan dengan masalah untuk mengukur  persentase   sebagai   pecahan,   tetapi   suatu   solusi   yang   lebih   umum   adalah   untuk  menggunakan   angka­angka   floating­point,   yang   dapat   mempresentasikan   pecahan seperti halnya bilangan bulat. Didalam Java, tipe floating­point disebut double. Anda dapat menciptakan variabel floating dan memberikan nilai dengan menggunakan Sintak yang sama yang]kita gunakan untuk tipe lain . Sebagai contoh:

double pi :

pi = 3.14159;

Ini juga benar untuk mempresentasikankan suatu variabel dan menugaskan suatu nilai kepadanya pada waktu yang sama:

int x = 1;
String empty = "";
double pi = 3.14159;

Sebenarnya, sintak ini adalah secara umum. Suatu kombanisi assigment dan deklarasi terkadang disebut suatu initialisasi. 


Sebenarnya, sintak ini adalah secara umum. Suatu kombanisi assigment dan deklarasi terkadang disebut suatu initialisasi. 

Walaupun   angka­angka   floating­point   bermanfaat,   namunn   sering   suatu   source membingungkan karena sepertinya ada tumpang­tindih antara bilangan bulat dan angka­ angka floating­point. Sebagai contoh, jika anda mempunyai nilai 1, yang merupakan suatu bilangan bulat, bilangan floating­point, atau kedua­duanya? 

Pada   dasarnya,   Java   menilai  integer  itu   1   dan  floating­point  1.0,   sungguhpun sepertinya adalah jumlahnya sama. Tetapi tipenya berbeda, dan pada dasarnya, anda tidaklah diijinkan untuk meng assign  antara tipe. Sebagai contoh, yang berikut adalah tidak benar:

int x = 1.1;

Sebab variabel pada sisi kiri adalah suatu int dan nilai pada sisi kanan adalah suatu double. maka mudah untuk melupakan aturan ini, kususnya karena ada tempat dimana java akan secara otomatis mengkonversi dari satu tipe ke lain. Sebagai contoh:

double y = 1;

seharusnya secara teknis tidak benar, tetapi Java mengijinkan dengan mengubah int itu kepada suatu double secara otomatis. Kemudahan ini sangat menyenangkan, tetapi itu dapat menyebabkan permasalahan; sebagai contoh:

double y = 1 / 3;

Anda   mungkin   mengharapkan   variabel   y   diberi   nilai     0.333333,   benar,   tetapi sesungguhnya  akan  menghasilkan  nilai  0.0. Alasan  adalah  bahwa  ekspresi  pada  sisi kanan   nampak   seperti   perbandingan   dua   bilangan   bulat,   maka   Java   mengerjakan pembagian bilangan bulat, yang menghasilkan bilangan bulat  0. yang dikonversi Untuk floating­point hasilnya 0.0.

Satu   cara   untuk   memecahkan   masalah   ini   (   saat   anda   menggambarkan   apa   artinya) adalah untuk ekspresi floating­point dari kanan. 

double y = 1.0 / 3.0;

disini y diset menjadi 0.333333, yang diharapkan. Semua operasi yang telah kita lihat sejauh ini penambahan, pengurangan, perkalian, dan pembagian juga ada pada nilai floating­point, walaupun anda mungkin tertarik untuk mengetahui   bahwa   mekanisme   dasarnya   berbeda   sepenuhnya.   Pada   kenyataanya, prosesor mempunyai perangkat keras khusus hanya untuk mekan operasi floating­point.

No comments:

Post a Comment