logo

Java'da NaN (Sayı Değil)

Java'da anlamı NaN öyle Sayı Değil ve içinde mevcut java.lang.Double Ve java.lang.Float sınıflar. Tanımlanmamış bir sayısal değeri temsil eden özel bir değerdir. Sonucun tanımsız olduğu matematiksel hesaplamalarda NAN ile karşılaşabiliriz.

  • Negatif bir Math.sqrt(-1) değerinin karekökünü hesaplamaya çalışırsak, negatif bir sayının karekökü tanımsız olduğundan NaN değerini döndürür.
  • Sıfırı sıfıra bölmeye çalışırsak aynı zamanda NaN değerini döndürür.

Örnek:

Java
// Java Program to demonstrates NAN // Define a class public class Geeks {  // main method  public static void main(String[] args)  {  System.out.println(2.0 % 0.0);  System.out.println(0.0 / 0.0);  System.out.println(Math.sqrt(-1));  } } 

Çıkış
NaN NaN NaN 

Bazen matematik mantıklı değil, bu yüzden NaN var. Java, hata atmak yerine bir şeylerin yanlış olduğunu göstermek için NaN'yi döndürür.



NaN Nasıl Oluşturulur?

yardımıyla Çift veya Batmadan yüzmek sınıflarda bir NAN oluşturabiliriz.

dizede bulunur

double n = Double.NaN; // Double Kullanımı

Java'da nasıl güncelleme yapılır?

float n = Float.NaN; // Float'ı kullanma

NaN Değerleri Nasıl Karşılaştırılır?

NaN'nin sırasız olması, NaN ile yapılan herhangi bir karşılaştırmanın yanlış sonuç vereceği anlamına gelir. NaN'yi başka bir NaN ile karşılaştırırsak veya ilişkisel operatörler kullanırsak sonuç her zaman yanlış olacaktır. Şimdi NaN'nin farklı senaryolarda nasıl çalıştığını tartışacağız.

1. İlişkisel Operatörler ve NaN

  • Sayısal karşılaştırma operatörleri< <= >ve >= işlenenlerden biri veya her ikisi de NaN ise her zaman false değerini döndürür.
  • Eşitlik operatörü ==, eğer işlenenlerden biri NaN ise false değerini döndürür.
  • Eşitsizlik operatörü != eğer işlenenlerden biri NaN ise true değerini döndürür.

Örnek:

Java
// Java program to test relational operator on NaN public class Geeks {  public static void main(String[] args)  {  // comparing NaN constant field defined in  // Float Class  System.out.print('Check if equal :');  System.out.println(Float.NaN == Float.NaN);    System.out.print('Check if unequal: ');  System.out.println(Float.NaN != Float.NaN);  // comparing NaN constant field defined in Double Class  System.out.print('Check if equal: ');  System.out.println(Double.NaN == Double.NaN);    System.out.print('Check if unequal: ');  System.out.println(Double.NaN != Double.NaN);  // More Examples  double NaN = 2.1 % 0;  System.out.println((2.1%0) == NaN);  System.out.println(NaN == NaN);  } } 

Çıkış
Check if equal :false Check if unequal: true Check if equal: false Check if unequal: true false false 


2. değilN() Kardeşler

Bu yöntem bir değerin NaN olup olmadığını kontrol etmek için kullanılır.

elektriğin avantajları

Örnek:

Java
// Demonstrating isNaN() import java.lang.*; // Created a class public class Geeks {  // main method  public static void main(String[] args)  {  Double x = new Double(-2.0/0.0);  Double y = new Double(0.0/0.0);      // returns false if this Double value is not a Not-a-Number (NaN)   System.out.println(y + ' = ' + y.isNaN());    // returns true if this Double value is a Not-a-Number (NaN)   System.out.println(x + ' = ' + x.isNaN());    } }  

Çıkış
NaN = true -Infinity = false 


3. Kayan Tip Matematiksel Değerlerle Çalışırken İstisna Üretmez

NaN takip ediyor IEEE 754 kayan nokta standart. IEEE754 kayan nokta sayıları pozitif veya negatif sonsuzluğu ve NaN'yi temsil edebilir. Bu üç değer, sonucu tanımlanamayan veya doğru şekilde gösterilemeyen hesaplamalardan kaynaklanmaktadır. Java bilinen matematik gerçeklerini takip ediyor. 1.0/0.0 sonsuzluktur ancak diğerleri Java'nın NaN (sayı değil) olarak temsil ettiği belirsiz formlardır.

Örnek:

Java
// Demonstrating output of floating // point number operations public class Geeks {  public static void main(String[] args)  {  System.out.println(2.0 / 0);  System.out.println(-2.0 / 0);  System.out.println(9.0E234 / 0.1E-234);  } } 

Çıkış
Infinity -Infinity Infinity 
Test Oluştur