JavaRush /Kurslar /All lectures for UZ purposes /Double turi - o'nlik sonlar

Double turi - o'nlik sonlar

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. double turi

Java'da o'nlik (kasr) sonlar ustida ishlash uchun double turi qo'llaniladi. Xotirada u 8 baytni egallaydi (bu int turidan ikki barobar kattaroq) va -1.7*10308 dan +1.7*10308 gacha qiymatlarni saqlay oladi. Taqqoslash uchun: int turi -2*109 dan +2*109 gacha qiymat saqlashi mumkin.

O'nlik sonlarda kasr qismi nuqtadan keyin yoziladi. Masalan, 123.456, yoki 2.5, yoki 100.00 yoki 0.01. Bu sonlar kompyuter terminologiyasida floating point number deb ataladi — o'nlik sonlarda virgulsiz sifatida tanish.

Shuni aytib o'tish kerakki, double turidan tashqari yana bir o'nlik tur float mavjud (faqat 4 bayt hajmli). Nom floating point dan kelib chiqadi. double esa double float nomidan kelishgan. double turi float turiga qaraganda ikki marotaba ko'proq: 8 bayt ga qarshi 4. Shuningdek, uni ikki aniq o'nlik son deb ham atashadi.


2. double turdagi o'zgaruvchi yaratish

Double turi o'nlik sonlarni saqlash uchun ishlatiladi. Kodda o'nlik sonlarni saqlovchi o'zgaruvchi yaratish uchun quyidagi buyruqdan foydalanish kerak:

double имя;
double turdagi o'zgaruvchi yaratish

Bu yerda имя — bu o'zgaruvchining nomi. Misollar:

Buyruq Izoh
double price;
O'nlik o'zgaruvchi price yaratiladi
double weight;
O'nlik o'zgaruvchi weight yaratiladi
double lightSpeed;
O'nlik o'zgaruvchi lightSpeed yaratiladi

Xuddi int turidagi o'zgaruvchilar bilan qilganingizdek, bir necha double turidagi o'zgaruvchilarni qisqa ifoda yordamida yaratish mumkin:

double имя1, имя2, имя3;
Bir necha double turdagi o'zgaruvchilar yaratish

Va hatto ularga darhol qiymatlar berilishi ham mumkin:

double имя1 = значение1, имя2 = значение2, имя3 = значение3;
Bir necha double turidagi o'zgaruvchilarni yaratish va initsializatsiya qilish

Misollar:

Buyruq Izoh
double price = 5.0;
O'zgaruvchida 5.0 qiymati saqlanadi
double weight = 2;
O'zgaruvchida 2.0 qiymati saqlanadi
double x = 1.0, y = 2.0, z = 3.0;

3. Butun va o'nlik sonlarni qiymat berish

Butun sonlarni faqat int turdagi o'zgaruvchilarga berish qiyin bo'lardi, faqat o'nlik sonlar esa faqat double turidagi o'zgaruvchilarga beriladi. Bir sonlarni boshqalarga aylantirish imkoniyatini xohlaysiz. Va Java'da bu imkoniyat bor.

Birinchidan, double turidagi o'zgaruvchilarga butun ham, o'nlik ham sonlar berilishi mumkin. Butun sonlarni berishda ular o'nlikka aylanadi. Gohida bunda kichik aniqlik yo'qotilishi mumkin.

Buyruq Izoh
double price = 5.0;
O'zgaruvchida 5.0 qiymati saqlanadi
double weight = 2;
O'zgaruvchida 2.0 qiymati saqlanadi
int t = 1000;
double x =  t * t;

O'zgaruvchi xda 1000000.0 qiymati saqlanadi

Ikkinchidan, agar biron-bir iborada butun va o'nlik sonlar ishtirok etsa, butun avval o'nlikka aylanadi va keyin boshqa o'nlik son bilan o'zaro aloqada bo'ladi.

Buyruq Izoh
int t = 1000;
double x = t * 5.0;

O'zgaruvchi xda 5000.0 qiymati saqlanadi
System.out.println(5 * 2);
Ekranda 10 raqami chiqariladi
System.out.println(5 * 2.0);
Ekranda 10.0 raqami chiqariladi

Va nihoyat, int turidagi o'zgaruvchilarga o'nlik sonlarni berish imkoniyati mavjud. Bunda sonning kasr qismi tashlab yuboriladi — son pastga qarab yaxlitlanadi.

Shuningdek, kompilyator bu faktni dasturchi ochiq ko'rsatib o'tishni talab qiladi (boshqa dasturchilar uchun bu yerda kasr qismi tashlanayotganligi aniq ko'rinishi uchun). Kodda bu ifodaning umumiy ko'rinishi quyidagicha:

целочисленная_переменная = (int)(вещественное_число);
int turidagi o'zgaruvchiga o'nlik son berish

Misollar:

Buyruq Izoh
int x = (int)(5.5);
O'zgaruvchi xda 5 qiymati saqlanadi
double a = 5.999;
int x = (int)(a);
O'zgaruvchi xda 5 qiymati saqlanadi
double a = 5.999;
int b = 2;
int x = (int)(a * b);
O'zgaruvchi xda 11 qiymati saqlanadi


4. Java'da butun va o'nlik sonlar bo'linishi

Agar butun sonni butun songa bo'lsangiz, qoldiq har doim tashlanadi. Xo'sh, 5ni 2ga bo'lishda qanday qilib 2.5 hosil qilinadi?

Avvaliga, to'g'ri variant mana bu tarzda ko'rinadi:

double d = 5 / 2;

Biroq, hammasi shunchalik oddiy emas. Gap shundaki, Java-machinasida avval 5 / 2 ifodasining qiymati hisoblanadi va faqat shundan keyin natija d o'zgaruvchisiga beriladi. 5 / 2 butun bo'linadi. Ya'ni d 2 qiymatini o'z ichiga oladi, aniqroq qilib aytganda 2.0

To'g'ri variant mana bu: hech bo'lmaganda bitta sonni, ishtirok etayotgan, o'nlik sifatida yozish kerak (ya'ni virgulsiz):

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

Bu ifodalarning har birida d qiymatida 2.5 bo'ladi

O'zgaruvchilar bilan nima qilamiz? Agar bizda quyidagi kod bo'lsa:

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

Bu yerda aqlli (va aniq) yechim bor — Java-mashinasini o'zgaruvchilarni o'nlikka aylantirishga majbur qilish: ularni o'nlik birlikka — 1.0 ko'paytiramiz.

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

Diqqat qilishingiz kerakki, ko'paytirish va bo'lish operatsiyalari teng ustunlikka ega, va ular chapdan o'ngga qarab bajariladi, shuning uchun o'nlik birlikka qayerda ko'paytirilayotganligiga ahamiyat berish lozim.

Misollar:

Buyruq Bajarish tartibi Natija
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

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION