1. doublejenis
Java menyediakan doubletipe untuk bekerja dengan bilangan real (pecahan). Ini menempati 8 bytesmemori (dua kali lebih banyak dari jenisnya int) dan dapat menyimpan nilai dalam rentang dari hingga . Sebagai perbandingan: tipe dapat menyimpan nilai dalam rentang dari hingga .-1.7*10308+1.7*10308int-2*109+2*109
Dalam bilangan real, bagian pecahan ditulis setelah titik desimal. Misalnya, 123,456, atau 2,5, atau 100,00, atau 0,01. Ketika komputer menangani angka-angka seperti itu, kami menyebutnya angka floating point .
Omong-omong, selain tipenya double, kami juga punya tipenya float(yang ukurannya hanya 4 byte). Namanya berasal dari floating point . Dan namanya doubleberasal dari double float . A doubleadalah dua kali lebih besar sebagai float: 8 bytesversus 4. Ini juga disebut angka floating-point presisi ganda .
2. Membuat doubletipe
Tipe ganda digunakan untuk menyimpan bilangan real. Untuk membuat variabel dalam kode yang dapat menyimpan bilangan real, Anda perlu menggunakan pernyataan seperti ini:
double name;
doubletipe
Di mana nama adalah nama variabel. Contoh:
| Penyataan | Keterangan |
|---|---|
|
Variabel nyata pricedibuat |
|
Variabel nyata weightdibuat |
|
Variabel nyata lightSpeeddibuat |
Seperti tipenya int, Anda dapat menggunakan singkatan untuk membuat beberapa doublevariabel secara bersamaan:
double name 1, name 2, name 3;
doublevariabel
Dan bahkan segera memberikan nilai kepada mereka:
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
doublevariabel
Contoh:
| Penyataan | Catatan |
|---|---|
|
Toko variabel5.0 |
|
Toko variabel2.0 |
|
3. Menetapkan bilangan bulat dan bilangan real
Akan buruk jika bilangan bulat hanya dapat ditugaskan ke intvariabel, dan bilangan real - hanya ke doublevariabel. Kami ingin dapat mengonversi antara dua jenis angka. Dan Java menyediakan kemampuan ini.
Pertama, bilangan real dan bilangan bulat dapat diberikan ke doublevariabel. Saat menetapkan bilangan bulat, mereka hanya diubah menjadi bilangan real. Tentu saja, beberapa akurasi mungkin hilang dalam prosesnya.
| Penyataan | Catatan |
|---|---|
|
Toko variabel5.0 |
|
Toko variabel2.0 |
|
Toko xvariabel1000000.0 |
Kedua, jika bilangan bulat dan bilangan real terlibat dalam beberapa ekspresi, maka bilangan bulat pertama-tama diubah menjadi bilangan real dan baru kemudian operasi dengan bilangan real lainnya dilakukan.
| Penyataan | Catatan |
|---|---|
|
Toko xvariabel5000.0 |
|
Nomor 10akan ditampilkan di layar |
|
Nomor 10.0akan ditampilkan di layar |
Dan terakhir, dimungkinkan juga untuk menetapkan bilangan real ke intvariabel. Saat kita melakukan ini, bagian pecahan dari bilangan real dibuang — bilangan dibulatkan ke bawah ke bilangan bulat terdekat.
Selain itu, kompiler mengharuskan pemrogram untuk secara eksplisit mendokumentasikan apa yang terjadi (untuk memastikan bahwa pemrogram lain memahami bahwa bagian pecahan sedang dibuang). Secara umum, konversi seperti ini terlihat seperti ini dalam kode:
integer_variable = (int)(real_number);
intvariabel
Contoh:
| Penyataan | Catatan |
|---|---|
|
Toko xvariabel5 |
|
Toko xvariabel5 |
|
Toko xvariabel11 |
4. Membagi bilangan bulat dan bilangan real di Jawa
Saat membagi bilangan bulat dengan bilangan bulat, sisanya selalu dibuang. Lalu bagaimana kita dapat membagi 5dengan 2mendapatkan 2.5?
Pada awalnya, sepertinya opsi yang benar adalah:
double d = 5 / 2;
Tapi itu tidak begitu sederhana. Masalahnya di sini adalah bahwa mesin Java pertama-tama menghitung nilai dari 5 / 2dan baru kemudian memberikan hasilnya ke dvariabel. Dan 5 / 2operasinya adalah pembagian bilangan bulat. Itu berarti d akan mengandung 2atau, lebih tepatnya,2.0
Solusi yang benar adalah dengan menulis setidaknya satu angka yang terlibat dalam pembagian sebagai bilangan real (yaitu dengan titik desimal):
double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;
Di setiap ekspresi, d akan berisi2.5
Tetapi bagaimana jika kita bekerja dengan variabel? Bagaimana jika kita memiliki kode seperti ini ?:
int a = 5;
int b = 2;
double d = a / b;
Ada solusi yang apik (dan jelas) di sini — paksa mesin Java untuk mengonversi variabel menjadi bilangan real dengan mengalikannya dengan satu sebagai bilangan real ( 1.0)
int a = 5;
int b = 2;
double d = a * 1.0 / b;
Perhatikan bahwa perkalian dan pembagian memiliki prioritas yang sama, dan dilakukan dari kiri ke kanan. Itu artinya penting di mana kita mengalikan 1,0.
Contoh:
| Penyataan | Urutan eksekusi | Hasil |
|---|---|---|
|
(1.0 * a) / b; |
2.5 |
|
(a * 1.0) / b; |
2.5 |
|
(a / b) * 1.0; |
2.0 |
GO TO FULL VERSION