1. doubleuri

Nagbibigay ang Java ng doubleuri para sa pagtatrabaho sa mga tunay (fractional) na numero. Ito ay sumasakop 8 bytessa memorya (dalawang beses na kasing dami ng inturi) 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*10308int-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 doubleuri, mayroon din kaming floaturi (na 4 na bytes lamang ang laki). Ang pangalan nito ay nagmula sa floating point . At ang pangalan doubleay nagmula sa double float . Ang A doubleay dalawang beses na mas malaki kaysa sa a float: 8 bytesversus 4. Tinatawag din itong double precision floating-point number .


2. Paglikha ng isang doubleuri

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;
Paglikha ng isang doubleuri

Kung saan ang pangalan ay ang pangalan ng variable. Mga halimbawa:

Pahayag Paglalarawan
double price;
Ang isang tunay na pricevariable ay nilikha
double weight;
Ang isang tunay na weightvariable ay nilikha
double lightSpeed;
Ang isang tunay na lightSpeedvariable ay nilikha

Tulad ng inturi, maaari mong gamitin ang shorthand upang lumikha ng maraming doublevariable nang sabay-sabay:

double name 1, name 2, name 3;
Paglikha ng maramihang doublemga variable

At kahit na agad na magtalaga ng mga halaga sa kanila:

double name 1 = value 1, name 2 = value 2, name 3 = value 3;
Paglikha at pagsisimula ng maraming doublevariable

Mga halimbawa:

Pahayag Tandaan
double price = 5.0;
Ang mga variable na tindahan5.0
double weight = 2;
Ang mga variable na tindahan2.0
double x = 1.0, y = 2.0, z = 3.0;

3. Pagtatalaga ng mga integer at totoong numero

Magiging masama kung ang mga integer ay maaaring italaga lamang sa intmga 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 doublemga 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
double price = 5.0;
Ang mga variable na tindahan5.0
double weight = 2;
Ang mga variable na tindahan2.0
int t = 1000;
double x =  t * t;

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

Ang mga xvariable na tindahan5000.0
System.out.println(5 * 2);
Ang numero 10ay ipapakita sa screen
System.out.println(5 * 2.0);
Ang numero 10.0ay ipapakita sa screen

At sa wakas, posible ring magtalaga ng mga tunay na numero sa intmga 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);
Pagtatalaga ng totoong numero sa isang intvariable

Mga halimbawa:

Pahayag Tandaan
int x = (int)(5.5);
Ang mga xvariable na tindahan5
double a = 5.999;
int x = (int)(a);
Ang mga xvariable na tindahan5
double a = 5.999;
int b = 2;
int x = (int)(a * b);
Ang mga xvariable 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 5para 2makakuha 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 / 2at pagkatapos ay itinalaga ang resulta sa dvariable. At ang 5 / 2operasyon ay integer division. Ang ibig sabihin nito d ay maglalaman 2o, 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
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