1. double
tip
Java, double
gerç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 int
arasındaki değerleri saklayabilir . Karşılaştırma için: tür, ile aralığında bir değer saklayabilir .-1.7*10308
+1.7*10308
int
-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 .double
float
8 bytes
4
2. Bir double
tü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;
burada name, değişkenin adıdır. Örnekler:
İfade | Tanım |
---|---|
|
Gerçek bir price değişken oluşturulur |
|
Gerçek bir weight değişken oluşturulur |
|
Gerçek bir lightSpeed değ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;
Hatta onlara hemen değerler atayın:
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
Örnekler:
İfade | Not |
---|---|
|
Değişken depolar5.0 |
|
Değişken depolar2.0 |
|
3. Tam sayıları ve gerçek sayıları atama
int
Tamsayı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 |
---|---|
|
Değişken depolar5.0 |
|
Değişken depolar2.0 |
|
Değişken x depolar1000000.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 |
---|---|
|
Değişken x depolar5000.0 |
|
Numara 10 ekranda görüntülenecektir. |
|
Numara 10.0 ekranda 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);
Örnekler:
İfade | Not |
---|---|
|
Değişken x depolar5 |
|
Değişken x depolar5 |
|
Değişken x depolar11 |
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 5
için nasıl bölebiliriz ?2
2.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 / 2
ve ancak daha sonra sonucu değişkene atamasıdır d
. Ve 5 / 2
işlem tamsayı bölme işlemidir. Bu, d
içerecek 2
veya 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.0
Burada şı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ç |
---|---|---|
|
(1.0 * a) / b; |
2.5 |
|
(a * 1.0) / b; |
2.5 |
|
(a / b) * 1.0; |
2.0 |