1. java bevezető




Download 1.08 Mb.
bet16/51
Sana07.04.2017
Hajmi1.08 Mb.
#3295
1   ...   12   13   14   15   16   17   18   19   ...   51

A float és a double


A valós számok használata akkor kerül előtérbe, amikor olyan számolásokat végzünk, amelyek nem végezhetők el könnyedén egész számokon. A valós számok használata lassíthatja a program működését, mivel ezek kezelése néhány processzoron nincsen kellően gyorsítva, ezért csak akkor használjunk valós számokat, amikor feltétlenül szükséges. Nézzük a float típus használatát:

view plaincopy to clipboardprint?

  1. float szám = 0;  

  2. System.out.println(szám);  

  3. szám = 1/3;  

  4. System.out.println(szám);  

  5. szám = 1f/3f;  

  6. System.out.println(szám);  

  7. szám = -1*0f;  

  8. System.out.println(szám);  

  9. System.out.println(szám == 0f);  

  10. szám = 100000000000000000000000000000000000000f;  

  11. System.out.println(szám);  

  12. szám = 1.0E38f;  

  13. System.out.println(szám);  

Eredményül nem pont azt kapjuk, amit várnánk:

view plaincopy to clipboardprint?

  1. 0.0  

  2. 0.0  

  3. 0.33333334  

  4. -0.0  

  5. true  

  6. 1.0E38  

  7. 1.0E38  

Az első 0.0 érthető, hiszen ezt adtuk értékül a szám nevű változónak. A második 0.0 azonban elgondolkodtató: az egyharmad értéke nem szabadna nulla legyen. Ennek oka az, hogy a Java nyelv két egész számot lát: elosztja az egyet hárommal: hányszor van meg egyben a három? Ugye egyszer sem, ezért kaptunk eredményül nullát. A problémát úgy tudjuk kikerülni, hogy a szám mögé írt f betűvel mondjuk meg, hogy ez a szám nem egész szám, hanem float. A 1f/3f művelet eredménye már 0.33333334, mivel a float csak nyolc számjegy pontosságú, azt követően nincs több értékes számjegy. A -0.0 eredmény a számábrázolás érdekessége, ugyanis van plusz nulla és mínusz nulla is, és ahogy a következő sorban látjuk: a kettő egyenlő egymással. A nagy számokat megadhatjuk a számjegyekkel is, de rövidebb a normálforma: 1.0·1038, amely a program forrásában 1.0E38 formán kódolódik.

double használata annyiban tér el a float használatától, hogy az f karakter helyett d karaktert kell használnunk a literál megadásakor (amelyet akár el is hagyhatunk, hiszen a double típus az alapértelmezett lebegőpontos típus).



Download 1.08 Mb.
1   ...   12   13   14   15   16   17   18   19   ...   51




Download 1.08 Mb.