1. doubletípus
doubleA Java valós (tört) számokkal való munkavégzés típusát biztosítja . A memóriát elfoglalja 8 bytes(kétszer annyit, mint a típus), és től ig terjedő inttartományban tud értékeket tárolni . Összehasonlításképpen: a típus tól és -ig terjedő tartományban tud értéket tárolni .-1.7*10308+1.7*10308int-2*109+2*109
Valós számokban a tört részt tizedesvessző után írjuk. Például 123,456, 2,5, 100,00 vagy 0,01. Amikor a számítógépek ilyen számokkal foglalkoznak, lebegőpontos számoknak nevezzük őket .
Egyébként a doubletípuson kívül megvan a floattípus is (ami mindössze 4 bájt méretű). A neve a lebegőpontból származik . A név pedig a dupla úszóbóldouble származik . A kétszer akkora, mint a : versus . Dupla pontosságú lebegőpontos számnak is nevezik .doublefloat8 bytes4
2. doubleTípus létrehozása
A dupla típus valós számok tárolására szolgál. Valós számok tárolására alkalmas változó létrehozásához a következőhöz hasonló utasítást kell használnia:
double name;
doubleTípus létrehozása
Ahol a név a változó neve. Példák:
| Nyilatkozat | Leírás |
|---|---|
|
Valós priceváltozó jön létre |
|
Valós weightváltozó jön létre |
|
Valós lightSpeedváltozó jön létre |
A típushoz hasonlóan inta gyorsírással több változót is létrehozhat doubleegyszerre:
double name 1, name 2, name 3;
doubleváltozó létrehozása
És akár azonnal rendeljen hozzá értékeket:
double name 1 = value 1, name 2 = value 2, name 3 = value 3;
doubleTöbb változó létrehozása és inicializálása
Példák:
| Nyilatkozat | jegyzet |
|---|---|
|
A változó tárolja5.0 |
|
A változó tárolja2.0 |
|
3. Egész és valós számok hozzárendelése
Rossz lenne, ha egész számokat csak változókhoz int, valós számokat pedig csak változókhoz lehetne rendelni double. Szeretnénk átváltani a kétféle szám között. A Java pedig ezt a képességet biztosítja.
Először is, valós és egész számokat is hozzá lehet rendelni a doubleváltozókhoz. Egész számok hozzárendelésekor egyszerűen valós számokká konvertálják őket. Természetesen a pontosság elveszhet a folyamat során.
| Nyilatkozat | jegyzet |
|---|---|
|
A változó tárolja5.0 |
|
A változó tárolja2.0 |
|
A xváltozó tárolja1000000.0 |
Másodszor, ha egy egész szám és egy valós szám szerepel valamilyen kifejezésben, akkor az egész szám először valós számmá alakul, és csak ezután hajtják végre a műveletet a másik valós számmal.
| Nyilatkozat | jegyzet |
|---|---|
|
A xváltozó tárolja5000.0 |
|
A szám 10megjelenik a képernyőn |
|
A szám 10.0megjelenik a képernyőn |
És végül lehetséges valós számokat is hozzárendelni a változókhoz int. Amikor ezt tesszük, a valós szám tört részét eldobjuk – a számot lefelé kerekítjük a legközelebbi egész számra.
Ezenkívül a fordító megköveteli a programozótól, hogy kifejezetten dokumentálja a történéseket (hogy megbizonyosodjon arról, hogy a többi programozó megérti, hogy a töredékes részt kihagyják). Általában egy ilyen konverzió a kódban így néz ki:
integer_variable = (int)(real_number);
intváltozóhoz
Példák:
| Nyilatkozat | jegyzet |
|---|---|
|
A xváltozó tárolja5 |
|
A xváltozó tárolja5 |
|
A xváltozó tárolja11 |
4. Egész és valós számok felosztása Java nyelven
Egy egész szám egész számmal való osztásakor a maradékot mindig eldobjuk. Akkor hogyan oszthatjuk 5el, 2hogy megkapjuk 2.5?
Elsőre úgy tűnik, hogy a megfelelő lehetőség:
double d = 5 / 2;
De ez nem ilyen egyszerű. A probléma itt az, hogy a Java gép először kiszámolja az értékét 5 / 2, és csak azután rendeli hozzá az eredményt a változóhoz d. A művelet pedig 5 / 2egész számokkal való osztás. Ez azt jelenti , d hogy tartalmazni fogja 2, vagy pontosabban:2.0
A helyes megoldás, ha az osztásban részt vevő számok közül legalább egyet valós számként írunk (azaz tizedesvesszővel):
double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;
Minden kifejezésben d tartalmazni fogja2.5
De mi van akkor, ha változókkal dolgozunk? Mi van, ha ilyen kódunk van?:
int a = 5;
int b = 2;
double d = a / b;
Van itt egy sima (és kézenfekvő) megoldás: kényszerítse a Java gépet, hogy a változókat valós számokká alakítsa úgy, hogy valós számként megszorozza őket eggyel ( 1.0)
int a = 5;
int b = 2;
double d = a * 1.0 / b;
Vegye figyelembe, hogy a szorzás és az osztás egyenlő elsőbbséggel bír, és balról jobbra történik. Ez azt jelenti, hogy számít, hol szorozzuk meg az 1,0-t.
Példák:
| Nyilatkozat | Végrehajtási sorrend | Eredmény |
|---|---|---|
|
(1.0 * a) / b; |
2.5 |
|
(a * 1.0) / b; |
2.5 |
|
(a / b) * 1.0; |
2.0 |
GO TO FULL VERSION