1. double
jenis
Java menyediakan double
tipe untuk bekerja dengan bilangan real (pecahan). Ini menempati 8 bytes
memori (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*10308
int
-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 double
berasal dari double float . A double
adalah dua kali lebih besar sebagai float
: 8 bytes
versus 4
. Ini juga disebut angka floating-point presisi ganda .
2. Membuat double
tipe
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;
Di mana nama adalah nama variabel. Contoh:
Penyataan | Keterangan |
---|---|
|
Variabel nyata price dibuat |
|
Variabel nyata weight dibuat |
|
Variabel nyata lightSpeed dibuat |
Seperti tipenya int
, Anda dapat menggunakan singkatan untuk membuat beberapa double
variabel secara bersamaan:
double name 1, name 2, name 3;
Dan bahkan segera memberikan nilai kepada mereka:
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
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 int
variabel, dan bilangan real - hanya ke double
variabel. Kami ingin dapat mengonversi antara dua jenis angka. Dan Java menyediakan kemampuan ini.
Pertama, bilangan real dan bilangan bulat dapat diberikan ke double
variabel. 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 x variabel1000000.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 x variabel5000.0 |
|
Nomor 10 akan ditampilkan di layar |
|
Nomor 10.0 akan ditampilkan di layar |
Dan terakhir, dimungkinkan juga untuk menetapkan bilangan real ke int
variabel. 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);
Contoh:
Penyataan | Catatan |
---|---|
|
Toko x variabel5 |
|
Toko x variabel5 |
|
Toko x variabel11 |
4. Membagi bilangan bulat dan bilangan real di Jawa
Saat membagi bilangan bulat dengan bilangan bulat, sisanya selalu dibuang. Lalu bagaimana kita dapat membagi 5
dengan 2
mendapatkan 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 / 2
dan baru kemudian memberikan hasilnya ke d
variabel. Dan 5 / 2
operasinya adalah pembagian bilangan bulat. Itu berarti d
akan mengandung 2
atau, 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