1. double
uri
Nagbibigay ang Java ng double
uri para sa pagtatrabaho sa mga tunay (fractional) na numero. Ito ay sumasakop 8 bytes
sa memorya (dalawang beses na kasing dami ng int
uri) at maaaring mag-imbak ng mga halaga sa hanay mula hanggang . Para sa paghahambing: ang uri ay maaaring mag-imbak ng isang halaga sa hanay mula hanggang .-1.7*10308
+1.7*10308
int
-2*109
+2*109
Sa totoong mga numero, ang fractional na bahagi ay isinusulat pagkatapos ng decimal point. Halimbawa, 123.456, o 2.5, o 100.00, o 0.01. Kapag ang mga computer ay nakikitungo sa mga naturang numero, tinatawag namin silang mga floating point na numero.
Sa pamamagitan ng paraan, bilang karagdagan sa double
uri, mayroon din kaming float
uri (na 4 na bytes lamang ang laki). Ang pangalan nito ay nagmula sa floating point . At ang pangalan double
ay nagmula sa double float . Ang A double
ay dalawang beses na mas malaki kaysa sa a float
: 8 bytes
versus 4
. Tinatawag din itong double precision floating-point number .
2. Paglikha ng isang double
uri
Ang dobleng uri ay ginagamit upang mag-imbak ng mga tunay na numero. Upang lumikha ng isang variable sa code na maaaring mag-imbak ng mga tunay na numero, kailangan mong gumamit ng isang pahayag na tulad nito:
double name;
Kung saan ang pangalan ay ang pangalan ng variable. Mga halimbawa:
Pahayag | Paglalarawan |
---|---|
|
Ang isang tunay na price variable ay nilikha |
|
Ang isang tunay na weight variable ay nilikha |
|
Ang isang tunay na lightSpeed variable ay nilikha |
Tulad ng int
uri, maaari mong gamitin ang shorthand upang lumikha ng maraming double
variable nang sabay-sabay:
double name 1, name 2, name 3;
At kahit na agad na magtalaga ng mga halaga sa kanila:
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
Mga halimbawa:
Pahayag | Tandaan |
---|---|
|
Ang mga variable na tindahan5.0 |
|
Ang mga variable na tindahan2.0 |
|
3. Pagtatalaga ng mga integer at totoong numero
Magiging masama kung ang mga integer ay maaaring italaga lamang sa int
mga variable, at mga tunay na numero - sa mga variable lamang double
. Gusto naming makapag-convert sa pagitan ng dalawang uri ng mga numero. At ang Java ay nagbibigay ng kakayahang ito.
Una, ang parehong tunay at integer na mga numero ay maaaring italaga sa double
mga variable. Kapag nagtatalaga ng mga integer, kino-convert lang ang mga ito sa mga tunay na numero. Siyempre, maaaring mawala ang ilang katumpakan sa proseso.
Pahayag | Tandaan |
---|---|
|
Ang mga variable na tindahan5.0 |
|
Ang mga variable na tindahan2.0 |
|
Ang mga x variable na tindahan1000000.0 |
Pangalawa, kung ang isang integer at isang tunay na numero ay kasangkot sa ilang mga expression, pagkatapos ay ang integer ay unang na-convert sa isang tunay na numero at pagkatapos lamang ay ang operasyon sa iba pang mga tunay na numero na ginanap.
Pahayag | Tandaan |
---|---|
|
Ang mga x variable na tindahan5000.0 |
|
Ang numero 10 ay ipapakita sa screen |
|
Ang numero 10.0 ay ipapakita sa screen |
At sa wakas, posible ring magtalaga ng mga tunay na numero sa int
mga variable. Kapag ginawa namin ito, ang fractional na bahagi ng tunay na numero ay itatapon — ang numero ay ni-round down sa pinakamalapit na buong numero.
Bukod pa rito, hinihiling ng compiler ang programmer na tahasang idokumento kung ano ang nangyayari (upang matiyak na nauunawaan ng ibang programmer na ang fractional na bahagi ay ibinabagsak). Sa pangkalahatan, ganito ang hitsura ng naturang conversion sa code:
integer_variable = (int)(real_number);
Mga halimbawa:
Pahayag | Tandaan |
---|---|
|
Ang mga x variable na tindahan5 |
|
Ang mga x variable na tindahan5 |
|
Ang mga x variable na tindahan11 |
4. Paghahati ng mga integer at totoong numero sa Java
Kapag hinahati ang isang integer sa isang integer, ang natitira ay palaging itinatapon. Paano nga ba tayo maghahati-hati 5
para 2
makakuha ng 2.5
?
Sa una, tila ang tamang opsyon ay:
double d = 5 / 2;
Ngunit ito ay hindi gaanong simple. Ang problema dito ay unang kinakalkula ng Java machine ang halaga ng 5 / 2
at pagkatapos ay itinalaga ang resulta sa d
variable. At ang 5 / 2
operasyon ay integer division. Ang ibig sabihin nito d
ay maglalaman 2
o, upang maging mas tumpak,2.0
Ang tamang solusyon ay ang pagsulat ng kahit isa sa mga numerong kasangkot sa dibisyon bilang isang tunay na numero (ibig sabihin, may decimal point):
double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;
Sa bawat expression, d
maglalaman2.5
Ngunit paano kung nagtatrabaho tayo sa mga variable? Paano kung mayroon tayong ganitong code?:
int a = 5;
int b = 2;
double d = a / b;
Mayroong isang makinis (at halata) na solusyon dito — pilitin ang Java machine na i-convert ang mga variable sa totoong numero sa pamamagitan ng pagpaparami sa kanila ng isa bilang isang tunay na numero ( 1.0
)
int a = 5;
int b = 2;
double d = a * 1.0 / b;
Tandaan na ang multiplikasyon at paghahati ay may pantay na pangunguna, at ginagawa mula kaliwa hanggang kanan. Nangangahulugan iyon na mahalaga kung saan natin i-multiply ang 1.0.
Mga halimbawa:
Pahayag | Order of execution | Resulta |
---|---|---|
|
(1.0 * a) / b; |
2.5 |
|
(a * 1.0) / b; |
2.5 |
|
(a / b) * 1.0; |
2.0 |
GO TO FULL VERSION