logo

NaN (не число) в Java

У Java значення NaN є Не номер і це присутнє в java.lang.Double і java.lang.Float класи. Це спеціальне значення, яке представляє невизначене числове значення. Ми можемо зустріти NAN у математичних розрахунках, де результат не визначений.

  • Якщо ми спробуємо обчислити квадратний корінь із від’ємного числа Math.sqrt(-1), він поверне NaN, оскільки квадратний корінь із від’ємного числа не визначено.
  • Якщо ми спробуємо поділити нуль на нуль, це також поверне NaN.

приклад:

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));  } } 

Вихід
NaN NaN NaN 

іноді математика не має сенсу, тому існує NaN. Замість викидання помилок Java просто повертає NaN, щоб показати, що щось не так.



приклад підрядка java

Як створити NaN?

За допомогою Двомісний або Поплавок класи ми можемо створити NAN.

double n = Double.NaN; // Використання Double

float n = Float.NaN; // Використання Float

Як порівняти значення NaN?

NaN є невпорядкованими, це означає, що будь-яке порівняння з NaN поверне false. Якщо ми порівнюємо NaN з іншим NaN або ми використовуємо оператори відношення, результат завжди буде хибним. Тепер ми обговоримо, як NaN працює в різних сценаріях.

s у python

1. Оператори відношення та NaN

  • Числові оператори порівняння< <= >і >= завжди повертають false, якщо один або обидва операнди є NaN.
  • Оператор рівності == повертає false, якщо один із операндів є NaN.
  • Оператор нерівності != повертає істину, якщо один із операндів є NaN.

приклад:

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);  } } 

Вихід
Check if equal :false Check if unequal: true Check if equal: false Check if unequal: true false false 


2. isnN() Брати

Цей метод використовується для перевірки значення NaN.

приклад:

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());    } }  

Вихід
NaN = true -Infinity = false 


java для перерви

3. Плаваючий тип не створює винятків під час роботи з математичними значеннями

NaN слідує за IEEE 754 з плаваючою комою стандарт. IEEE 754 Числа з плаваючою комою можуть представляти позитивну або негативну нескінченність і NaN. Ці три значення виникають у результаті обчислень, результат яких не визначений або не може бути представлений точно. Java слідує відомим математичним фактам. 1.0 / 0.0 – це нескінченність, але інші є невизначеними формами, які Java представляє як NaN (а не число).

приклад:

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);  } } 

Вихід
Infinity -Infinity Infinity 
Створіть вікторину