1. doubletip

Java, doublegerçek (kesirli) sayılarla çalışmak için tür sağlar. Bellekte yer kaplar 8 bytes(türün iki katı kadar ) ve ile intarasındaki değerleri saklayabilir . Karşılaştırma için: tür, ile aralığında bir değer saklayabilir .-1.7*10308+1.7*10308int-2*109+2*109

Gerçek sayılarda kesirli kısım virgülden sonra yazılır. Örneğin, 123,456 veya 2,5 veya 100,00 veya 0,01. Bilgisayarlar bu tür sayılarla uğraşırken onlara kayan noktalı sayılar diyoruz.

Bu arada, türe ek olarak double, türümüz de var float(boyut olarak sadece 4 bayt). Adı kayan noktadan gelir . Ve isim double float'tandouble geliyor . A, a 'dan iki kat daha büyüktür : vs. Aynı zamanda çift duyarlıklı kayan noktalı sayı olarak da adlandırılır .doublefloat8 bytes4


2. Bir doubletür oluşturma

Double türü, gerçek sayıları saklamak için kullanılır. Gerçek sayıları depolayabilen kodda bir değişken oluşturmak için, şöyle bir ifade kullanmanız gerekir:

double name;
doubleBir tür oluşturma

burada name, değişkenin adıdır. Örnekler:

İfade Tanım
double price;
Gerçek bir pricedeğişken oluşturulur
double weight;
Gerçek bir weightdeğişken oluşturulur
double lightSpeed;
Gerçek bir lightSpeeddeğişken oluşturulur

Tipte olduğu gibi int, aynı anda birden fazla değişken oluşturmak için steno kullanabilirsiniz double:

double name 1, name 2, name 3;
doubleBirden çok değişken oluşturma

Hatta onlara hemen değerler atayın:

double name 1 = value 1, name 2 = value 2, name 3 = value 3;
doubleBirden çok değişken oluşturma ve başlatma

Örnekler:

İfade Not
double price = 5.0;
Değişken depolar5.0
double weight = 2;
Değişken depolar2.0
double x = 1.0, y = 2.0, z = 3.0;

3. Tam sayıları ve gerçek sayıları atama

intTamsayıların yalnızca değişkenlere ve gerçek sayıların yalnızca değişkenlere atanabilmesi kötü olurdu double. İki tür sayı arasında dönüşüm yapabilmek istiyoruz. Ve Java bu yeteneği sağlar.

İlk olarak, değişkenlere hem gerçek hem de tamsayı sayılar atanabilir double. Tamsayılar atanırken, basitçe gerçek sayılara dönüştürülürler. Tabii ki, süreçte bir miktar doğruluk kaybolabilir.

İfade Not
double price = 5.0;
Değişken depolar5.0
double weight = 2;
Değişken depolar2.0
int t = 1000;
double x =  t * t;

Değişken xdepolar1000000.0

İkincisi, bir ifadede bir tamsayı ve bir gerçek sayı varsa, o zaman tamsayı önce bir gerçek sayıya dönüştürülür ve ancak o zaman diğer gerçek sayı ile işlem gerçekleştirilir.

İfade Not
int t = 1000;
double x = t * 5.0;

Değişken xdepolar5000.0
System.out.println(5 * 2);
Numara 10ekranda görüntülenecektir.
System.out.println(5 * 2.0);
Numara 10.0ekranda görüntülenecektir.

Son olarak, değişkenlere gerçek sayılar atamak da mümkündür int. Bunu yaptığımızda, gerçek sayının kesirli kısmı atılır - sayı en yakın tam sayıya yuvarlanır.

Ek olarak, derleyici, programcının neler olduğunu açıkça belgelemesini gerektirir (diğer programcıların kesirli kısmın atlandığını anladığından emin olmak için). Genel olarak, böyle bir dönüşüm kodda şöyle görünür:

integer_variable = (int)(real_number);
intBir değişkene gerçek bir sayı atamak

Örnekler:

İfade Not
int x = (int)(5.5);
Değişken xdepolar5
double a = 5.999;
int x = (int)(a);
Değişken xdepolar5
double a = 5.999;
int b = 2;
int x = (int)(a * b);
Değişken xdepolar11


4. Java'da tam sayıları ve gerçek sayıları bölme

Bir tam sayıyı bir tam sayıya bölerken, kalan her zaman atılır. O zaman elde etmek 5için nasıl bölebiliriz ?22.5

İlk başta, doğru seçenek gibi görünüyor:

double d = 5 / 2;

Ama o kadar basit değil. Buradaki sorun, Java makinesinin önce değerini hesaplaması 5 / 2ve ancak daha sonra sonucu değişkene atamasıdır d. Ve 5 / 2işlem tamsayı bölme işlemidir. Bu, d içerecek 2veya daha kesin olmak gerekirse,2.0

Doğru çözüm , bölme işleminde yer alan sayılardan en az birini gerçek sayı olarak (yani ondalık basamaklı) yazmaktır :

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

İfadelerin her birinde, d içerecektir2.5

Peki ya değişkenlerle çalışıyorsak? Ya şöyle bir kodumuz varsa?:

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

1.0Burada şık (ve bariz) bir çözüm var — Java makinesini değişkenleri bir ile gerçek sayı ( ) olarak çarparak gerçek sayılara dönüştürmeye zorlayın.

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

Çarpma ve bölmenin eşit önceliğe sahip olduğunu ve soldan sağa yapıldığını unutmayın. Bu, 1.0'ı nerede çarptığımızın önemli olduğu anlamına gelir.

Örnekler:

İfade infaz emri Sonuç
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