CodeGym /Kurslar /Java SELF AZ /Double tipi - onluq ədədlər

Double tipi - onluq ədədlər

Java SELF AZ
Səviyyə , Dərs
Mövcuddur

1. double tipi

Həqiqi (ondalıklı) ədədlərlə işləmək üçün Java-da double tipi istifadə olunur. Yaddaşda o, 8 bayt tutum tutur (bu, int tipindən iki dəfə çoxdur) və -1.7*10308 ilə +1.7*10308 diapazonunda dəyərləri saxlaya bilir. Müqayisə üçün: int tipi -2*109 ilə +2*109 diapazonunda dəyər saxlaya bilər.

Həqiqi ədədlərdə onluq hissə nöqtədən sonra yazılır. Məsələn, 123.456, ya da 2.5, ya da 100.00 ya da 0.01. Belə ədədlərə bəzən üzən nöqtəli ədədlər deyilir — floating point number – həqiqi ədədlər üçün kompüter terminidir.

Bu arada, double tipindən başqa daha bir həqiqi tip var - float (ölçüsü cəmi 4 baytdır). Onun adı məhz floating point-dən əmələ gəlib. double isə double float-dan gəlir. double tipi float-dan iki dəfə böyükdür: 8 bayt 4-ə qarşı. Ona hələ ikili dəqiqlikli həqiqi ədəd də deyirlər.


2. double tipində dəyişənin yaradılması

Double tipi ondalık ədədləri saxlamaq üçün istifadə olunur. Kodda ondalık ədədləri saxlaya bilən dəyişən yaratmaq üçün aşağıdakı şəkildə yazmaq lazımdır:

double ad;
double növü dəyişəninin yaradılması

Burada ad — dəyişənin adı. Məsələn:

Əmr Təsvir
double price;
price adlı ondalık dəyişən yaradılır
double weight;
weight adlı ondalık dəyişən yaradılır
double lightSpeed;
lightSpeed adlı ondalık dəyişən yaradılır

Int tipi ilə olduğu kimi, double üçün də bir neçə dəyişəni qısa yazılışla yarada bilərsiniz:

double ad1, ad2, ad3;
Bir neçə double növündə dəyişənin yaradılması

Hətta dərhal dəyərlər də mənimsədə bilərsiniz:

double ad1 = deyer1, ad2 = deyer2, ad3 = deyer3;
Bir neçə double növündə dəyişənin yaradılması və ilkinləşdirilməsi

Nümunələr:

Əmr Qeyd
double price = 5.0;
Dəyişəndə 5.0 dəyəri saxlanılır
double weight = 2;
Dəyişəndə 2.0 dəyəri saxlanılır
double x = 1.0, y = 2.0, z = 3.0;

3. Tam və həqiqi ədədlərin mənimsədilməsi

Əgər tam ədədlər yalnız int tipli dəyişənlərə, həqiqi ədədlər isə yalnız double tipli dəyişənlərə mənimsədilə bilərdisə, bu çox pis olardı. Əslində bir növ ədədi başqa növə çevirmək istərdik. Və Java-da belə bir imkan var.

Birincisi, double tipli dəyişənlərə həm həqiqi, həm də tam ədədlər mənimsədilə bilər. Tam ədədlər mənimsədilərkən, sadəcə həqiqi ədədlərə çevrilirlər. Baxmayaraq ki, bəzən bununla bağlı kiçik bir dəqiqlik itkisi ola bilər.

Əmr Qeyd
double price = 5.0;
Dəyişəndə 5.0 dəyəri saxlanılır
double weight = 2;
Dəyişəndə 2.0 dəyəri saxlanılır
int t = 1000;
double x =  t * t;

Dəyişəndə x 1000000.0 dəyəri saxlanılır

İkincisi, əgər hər hansı ifadədə tam və həqiqi ədəd iştirak edirsə, tam ədəd əvvəlcə həqiqi ədədə çevrilir və yalnız bundan sonra digər həqiqi ədəd ilə qarşılıqlı təsirə girir.

Əmr Qeyd
int t = 1000;
double x = t * 5.0;

Dəyişəndə x 5000.0 dəyəri saxlanılır
System.out.println(5 * 2);
Ekranda 10 ədədi çap olunacaq
System.out.println(5 * 2.0);
Ekranda 10.0 ədədi çap olunacaq

Və nəhayət, int tipli dəyişənlərə həqiqi ədədlər mənimsədilə bilər. Bu zaman ədədin kəsr hissəsi atılır - ədəd aşağıya yuvarlanaraq tam ədədə çevrilir.

Həmçinin kompilyator bu faktın açıq şəkildə proqramist tərəfindən sənədləşdirilməsini tələb edir (beləliklə, digər proqramistlər burada kəsr hissəsinin atıldığını başa düşürlər). Bu ifadənin kodda ümumi görünüşü belədir:

tam_eded_deyiskeni = (int)(heqiqi_eded);
int tipli dəyişənə həqiqi ədədin mənimsədilməsi

Nümunələr:

Əmr Qeyd
int x = (int)(5.5);
Dəyişəndə x 5 dəyəri saxlanılır
double a = 5.999;
int x = (int)(a);
Dəyişəndə x 5 dəyəri saxlanılır
double a = 5.999;
int b = 2;
int x = (int)(a * b);
Dəyişəndə x 11 dəyəri saxlanılır


4. Java-da tam və həqiqi ədədlərin bölünməsi

Tam ədədin tam ədədə bölünməsi zamanı qalıq həmişə atılır. Bəs necə edə bilərik ki, məsələn, 5 ədədini 2-yə bölək və nəticə 2.5 olsun?

Başlanğıcda düzgün variant belə görünə bilər:

double d = 5 / 2;

Ancaq hər şey bu qədər sadə deyil. Məsələ burasındadır ki, Java maşını əvvəlcə 5 / 2 ifadəsinin dəyərini hesablayacaq və yalnız bundan sonra nəticəni d dəyişəninə təyin edəcək. Və 5 / 2 bölünməsi tam bölünəcək. Yəni d 2 və ya daha dəqiq desək, 2.0 dəyərini saxlayacaq.

Düzgün variant belədir: ən azı biri bölünmədə iştirak edən ədədlərdən biri həqiqi (yəni nöqtə ilə) yazılmalıdır:

double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;

Bu ifadələrin hər birində d dəyəri 2.5 olacaq.

Bəs dəyişənlərdə necə olacaq? Əgər belə bir kodumuz varsa:

int a = 5;
int b = 2;
double d = a / b;

Burada ağıllı (və göz qabağında olan) bir həll var — Java maşınını dəyişənləri həqiqi ədədə çevirməyə məcbur etmək lazımdır, onları həqiqi vahid — 1.0-a vuraraq.

int a = 5;
int b = 2;
double d = a * 1.0 / b;

Diqqət yetirin ki, vurma və bölmə əməliyyatlarının üstünlükləri eynidir və onlar soldan sağa doğru həyata keçirilir. Buna görə də həqiqi vahidi harada vurduğumuz vacibdir.

Nümunələr:

Komanda İcra qaydası Nəticə
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

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION