...
Ezen osztályok mind a Number osztályból származnak, amely a számokat kezelő osztályok őse. A Numberőstől örökölt kényszer szerint van hat metódusuk, amely a burkoló osztály által hordozott szám primitív típusát adja vissza:
...
Code Block | ||||
---|---|---|---|---|
| ||||
Double szám = new Double(3.141592653589793); |
...
System.out.println(szám.doubleValue()); |
...
System.out.println(szám.floatValue()); |
...
System.out.println(szám.longValue()); |
...
System.out.println(szám.intValue()); |
...
System.out.println(szám.shortValue()); |
...
System.out.println(szám.byteValue()); |
...
szám = Double.parseDouble("2.718281828459045"); |
...
System.out.println(szám.doubleValue()); |
...
System.out.println(szám.floatValue()); |
...
System.out.println(szám.longValue()); |
...
System.out.println(szám.intValue()); |
...
System.out.println(szám.shortValue()); |
...
System.out.println(szám.byteValue()); |
...
A fenti programrészlet eredménye:
...
Code Block | ||||
---|---|---|---|---|
| ||||
3. |
...
141592653589793
3.1415927
3
3
3
3
2.718281828459045
2.7182817
2
2
2
2 |
Mint látható, a valós számot hordozó Double esetén az egész számra való alakítás is megtörténik, ha egész típusú primitív típust kérek el, azonban az átalakítás során csonkolás történik (eltűnik a tizedespont mögötti számsor), nem pedig kerekítés!
Ezek az osztályok már több műveletet is lehetővé tesznek, nekünk azonban egyelőre elég a valueOfismerete, amely szöveges formából alakít számmá, akárcsak a Boolean esetén:
...
:
Code Block | ||||
---|---|---|---|---|
| ||||
szám = Double.valueOf("-2"); |
...
System.out.println(szám); |
...
szám = Double.valueOf("-2.2E3"); |
...
System.out.println(szám); |
...
szám = Double.valueOf("-2.2E3000"); |
...
System.out.println(szám); |
...
System.out.println(szám.isInfinite()); |
...
Ennek eredménye:
...
Code Block | ||||
---|---|---|---|---|
| ||||
-2. |
...
0 -2200. |
...
0
-Infinity
true |
Fontos, hogy a valós típusoknak lehet negatív és pozitív végtelen értéke - ha túl nagy számot szeretnénk szöveges formából átalakítani vagy a művelet eredménye túl nagy, ezt lekérdezhetjük az isInfinite metódussal.
...
Eddigi programjaink során már találkoztunk az értékadás műveletével:
Code Block |
---|
int szám; szám = 2; |
Ezt úgy kell olvasnunk, hogy legyen egy int típusú és szám nevű változónk, majd a szám nevű változó értéke legyen egyenlő kettővel.
...