Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Hva flyttall angår vil det vil sjeldent være grunn til å bruke noe annet enn double. Det som er viktig å bemerke seg er at et flyttall blir mindre og mindre nøyaktig desto større det blir og at man kan oppleve upresise beregninger selv på små verdier. 



Double tar også tre "merkelige" verdier som er greit å vite om:

NaN: "
Not a number", NaN kan tildeles en double dersom vi prøver å utføre operasjoner som ikke lar seg gjøre. Se under, eksempel 1.
Infinity: "Uendelig", Infinity er større enn alle tall, og følger noen enkle regler, eksempel 2.
-Infinity: "Negativ uendelig", -Infinity er mindre en alle tall, og følger de samme reglene som Infinity.

 

Eksempel 1

Code Block
languagejava
titleNaN-code
double d1 = Math.sqrt(-1); // NaN
 
double inf = Double.POSITIVE_INFINITY;
 
double d2 = inf - inf; // NaN

 

Eksempel 2

Code Block
languagejava
titleInfinity
double pos_inf = Double.POSITIVE_INFINITY; // Infinity
double neg_inf = Double.NEGATIVE_INFINITY; // -Infinity
 
System.out.println(pos_inf - 10); // Infinity
System.out.println(neg_inf - 10); // -Infinity
System.out.println(pos_inf * -1); // -Infinity

 

...

Når vi ønsker å lagre tall i et Collection-objekt må tallene være objekter, men java har mekanismer som i mange tilfeller gjør dette for oss.
Mer om hvorfor vi initialiserer collections med et klassenavn her.

 

Code Block
languagejava
titleAdding objekt
List<Integer> list = ArrayList<Integer>();


list.add(Integer.valueOf(13)); // valueOf() refererer til et objekt


list.get(0) // En Integer

 

Som nevnt over har java mekanismer som konverterer for oss
dersom det er helt tydelig hvilke verdier og typer som forventes

Code Block
languagejava
titleAuto-converting
list.add(n) // oversettes til
list.add(Integer.valueOf(n)) // og

list.get(i) // oversettes til 
list.get(i).intValue()