1. doublejinis
Jawa nyedhiyakake doublejinis kanggo nggarap angka nyata (pecahan). Iku manggoni 8 bytesing memori (kaping pindho minangka akeh minangka intjinis) lan bisa nyimpen nilai ing sawetara saka kanggo . Kanggo comparison: jinis bisa nyimpen nilai ing sawetara saka kanggo .-1.7*10308+1.7*10308int-2*109+2*109
Ing nomer nyata, bagean pecahan ditulis sawise titik desimal. Contone, 123.456, utawa 2.5, utawa 100.00, utawa 0.01. Nalika komputer menehi hasil karo nomer kuwi, kita nelpon nomer floating point .
Miturut cara, saliyane doublejinis, kita uga duwe floatjinis (sing ukurane mung 4 bait). Jeneng kasebut asale saka titik ngambang . Lan jeneng kasebut doubleasale saka dobel float . A doublekaping pindho luwih gedhe tinimbang float: 8 byteslawan 4. Iki uga disebut nomer floating-point presisi ganda .
2. Nggawe doublejinis
Jinis pindho digunakake kanggo nyimpen nomer nyata. Kanggo nggawe variabel ing kode sing bisa nyimpen nomer nyata, sampeyan kudu nggunakake statement kaya iki:
double name;
doublejinis
Where jeneng iku jeneng variabel. Tuladha:
| Pratelan | Katrangan |
|---|---|
|
Variabel nyata pricedigawe |
|
Variabel nyata weightdigawe |
|
Variabel nyata lightSpeeddigawe |
Minangka jinis int, sampeyan bisa nggunakake shorthand kanggo nggawe macem-macem doublevariabel bebarengan:
double name 1, name 2, name 3;
doublevariabel
Lan malah langsung menehi nilai kanggo wong-wong mau:
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
doublevariabel
Tuladha:
| Pratelan | Cathetan |
|---|---|
|
Toko variabel5.0 |
|
Toko variabel2.0 |
|
3. Nemtokake integer lan wilangan nyata
Iku bakal ala yen integer bisa diutus mung kanggo intvariabel, lan nomer nyata - mung kanggo doublevariabel. Kita pengin bisa ngowahi antarane rong jinis nomer kasebut. Lan Jawa nyedhiyakake kemampuan iki.
Kaping pisanan, nomer nyata lan integer bisa ditugasake menyang doublevariabel. Nalika nemtokake integer, mung diowahi dadi nomer nyata. Mesthi, sawetara akurasi bisa ilang ing proses kasebut.
| Pratelan | Cathetan |
|---|---|
|
Toko variabel5.0 |
|
Toko variabel2.0 |
|
Toko xvariabel1000000.0 |
Kapindho, yen integer lan nomer nyata melu sawetara expression, banjur integer pisanan diowahi menyang nomer nyata lan mung banjur operasi karo nomer nyata liyane dileksanakake.
| Pratelan | Cathetan |
|---|---|
|
Toko xvariabel5000.0 |
|
Nomer 10bakal ditampilake ing layar |
|
Nomer 10.0bakal ditampilake ing layar |
Lan pungkasanipun, iku uga bisa kanggo nemtokake nomer nyata kanggo intvariabel. Nalika kita nindakake iki, bagean pecahan saka nomer nyata dibuwak - nomer dibunderaké mudhun kanggo nomer wutuh paling cedhak.
Kajaba iku, compiler mbutuhake programmer kanggo nyathet kanthi jelas apa sing kedadeyan (kanggo mesthekake yen programer liyane ngerti yen bagean pecahan dibuwang). Umumé, konversi kasebut katon kaya iki ing kode:
integer_variable = (int)(real_number);
intvariabel
Tuladha:
| Pratelan | Cathetan |
|---|---|
|
Toko xvariabel5 |
|
Toko xvariabel5 |
|
Toko xvariabel11 |
4. Pembagian wilangan bulat lan wilangan riil ing basa Jawa
Nalika mbagi integer kanthi integer, sisane tansah dibuwang. Kepiye carane kita bisa dibagi 5kanggo 2entuk 2.5?
Kaping pisanan, misale jek pilihan sing bener yaiku:
double d = 5 / 2;
Nanging ora dadi prasaja. Masalah ing kene yaiku mesin Java ngetung nilai 5 / 2lan mung banjur menehi asil menyang dvariabel. Lan 5 / 2operasi iku divisi integer. Tegese d bakal ngemot 2utawa, luwih tepat,2.0
Solusi sing bener yaiku nulis paling ora siji saka nomer sing melu divisi minangka nomer nyata (yaiku kanthi titik desimal):
double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;
Ing saben ekspresi, d bakal ngemot2.5
Nanging apa yen kita nggarap variabel? Apa yen kita duwe kode kaya iki?:
int a = 5;
int b = 2;
double d = a / b;
Ana solusi sing apik (lan jelas) ing kene - meksa mesin Java kanggo ngowahi variabel dadi nomer nyata kanthi dikali dadi siji minangka nomer nyata ( 1.0)
int a = 5;
int b = 2;
double d = a * 1.0 / b;
Elinga yen perkalian lan divisi nduweni precedence sing padha, lan ditindakake saka kiwa menyang tengen. Tegese sing penting ngendi kita Multiply 1.0.
Tuladha:
| Pratelan | Urutan eksekusi | asil |
|---|---|---|
|
(1.0 * a) / b; |
2.5 |
|
(a * 1.0) / b; |
2.5 |
|
(a / b) * 1.0; |
2.0 |
GO TO FULL VERSION