Sponsor Reklam 


09.02.2009 (07:43)

 isInfinite() ve isNaN() Metotları 
Float veya Double sınıfları kayan noktalı (floating points) - ondalıklı sayılarda tanımlama ve işlem yapabilmemizi sağlar.

Bu sınıflarda yer alan bazı sabit değişkenler şunlardır:

TYPE: Sınıf tipi, double veya float.
MAX_VALUE: Maksimum pozitif değer.
MIN_VALUE: Mininmum pozitif değer.
SIZE: 32 ya da 64 bits boyut bilgisi.
POSITIVE_INFINITY: Artı sonsuz.
NEGATIVE_INFINITY: Eksi sonsuz.
NaN: Bir sayı değil. (Not a Number).

Artı sonsuz, eksi sonsuz ve NaN sabit değerleri bölme işlemlerinde karşılaşabileceğimiz sonuçlardır. Örnek olarak normalde "5/0" işlemi;
istisnasını verecektir. Ancak "5/0.0" işlemi bu istisnayı vermeyecektir.

Şu örneğe ve sonucuna bakalım:
package kodcu.net;

public class Main {

  public static void main(String[] args) {

    Double value1 = new Double(5 / 0.0);
    Double value2 = new Double(-5 / 0.); // or (-5 / 0.0)
    Double value3 = new Double(0/0.); // or (0 / 0.0)
    System.out.println(value1 + "\n" + value2 + "\n" + value3);
   
  }
}

Ekran çıktısı şu şekildedir:
Infinity
-Infinity
NaN

Görüldüğü gibi ilk işlemin sonucu artı sonsuz, ikinci işlemin sonucu eksi sonsuz ve son işlemin sonucu da belirsiz anlamında bir sayı değil (NaN) olarak dönmüştür. İşte bu değerlerin kontrolü isInfinite() ve isNaN() metotları ile sağlanmakta. İlk iki değer için isInfinite() true, son değer için false; ilk iki değer için isNaN() false ve üçüncü değer için true değerini verecektir.

if (value1.isInfinite()) {
  // this is true, because value1 is positive infinite
}
if (value2.isNaN()) {
  // this is false, because value2 is negative infinite
}
if (value3.isNaN()) {
  // this is true, because value3 is Not a Number
}

Imza: admin








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter