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 angkaangka floatingpoint, yang dapat mempresentasikan pecahan seperti halnya bilangan bulat. Didalam Java, tipe floatingpoint 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 angkaangka floatingpoint bermanfaat, namunn sering suatu source membingungkan karena sepertinya ada tumpangtindih antara bilangan bulat dan angka angka floatingpoint. Sebagai contoh, jika anda mempunyai nilai 1, yang merupakan suatu bilangan bulat, bilangan floatingpoint, atau keduaduanya?
Pada dasarnya, Java menilai integer itu 1 dan floatingpoint 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 floatingpoint hasilnya 0.0.
Satu cara untuk memecahkan masalah ini ( saat anda menggambarkan apa artinya) adalah untuk ekspresi floatingpoint 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 floatingpoint, walaupun anda mungkin tertarik untuk mengetahui bahwa mekanisme dasarnya berbeda sepenuhnya. Pada kenyataanya, prosesor mempunyai perangkat keras khusus hanya untuk mekan operasi floatingpoint.
No comments:
Post a Comment