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;
Nggawe doublejinis

Where jeneng iku jeneng variabel. Tuladha:

Pratelan Katrangan
double price;
Variabel nyata pricedigawe
double weight;
Variabel nyata weightdigawe
double lightSpeed;
Variabel nyata lightSpeeddigawe

Minangka jinis int, sampeyan bisa nggunakake shorthand kanggo nggawe macem-macem doublevariabel bebarengan:

double name 1, name 2, name 3;
Nggawe pirang-pirang doublevariabel

Lan malah langsung menehi nilai kanggo wong-wong mau:

double name 1 = value 1, name 2 = value 2, name 3 = value 3;
Nggawe lan miwiti sawetara doublevariabel

Tuladha:

Pratelan Cathetan
double price = 5.0;
Toko variabel5.0
double weight = 2;
Toko variabel2.0
double x = 1.0, y = 2.0, z = 3.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
double price = 5.0;
Toko variabel5.0
double weight = 2;
Toko variabel2.0
int t = 1000;
double x =  t * t;

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
int t = 1000;
double x = t * 5.0;

Toko xvariabel5000.0
System.out.println(5 * 2);
Nomer 10bakal ditampilake ing layar
System.out.println(5 * 2.0);
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);
Nemtokake nomer nyata menyang intvariabel

Tuladha:

Pratelan Cathetan
int x = (int)(5.5);
Toko xvariabel5
double a = 5.999;
int x = (int)(a);
Toko xvariabel5
double a = 5.999;
int b = 2;
int x = (int)(a * b);
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
int a = 5;
int b = 2;
double d = 1.0 * a / b;
(1.0 * a) / b; 2.5
int a = 5;
int b = 2;
double d = a * 1.0 / b;
(a * 1.0) / b; 2.5
int a = 5;
int b = 2;
double d = a / b * 1.0;
(a / b) * 1.0; 2.0