У Јави значење НаН је Није број а присутна је у јава.ланг.Доубле и јава.ланг.Флоат класе. То је посебна вредност која представља недефинисану нумеричку вредност. Можемо наићи на НАН у математичким прорачунима где је резултат недефинисан.
- Ако покушамо да израчунамо квадратни корен негативног Матх.скрт(-1) он ће вратити НаН јер је квадратни корен негативног броја недефинисан.
- Ако покушамо да поделимо нулу са нулом, то ће такође вратити НаН.
Пример:
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
Понекад математике нема смисла, зато НаН постоји. Уместо да баца грешке, Јава једноставно враћа НаН да покаже да нешто није у реду.
Како направити НаН?
Уз помоћ Двоструко или Флоат класе можемо креирати НАН.
доубле н = Доубле.НаН; // Коришћење Доубле
флоат н = Флоат.НаН; // Коришћење Флоат
Како упоредити НаН вредности?
НаН нису уређени, то значи да ће свако поређење са НаН вратити нетачно. Ако упоредимо НаН са другим НаН или користимо релационе операторе, резултат ће увек бити лажан. Сада ћемо разговарати о томе како НаН функционише у различитим сценама.
јава маин
1. Релациони оператори и НаН
- Оператори нумеричког поређења< <= >и >= увек враћају фалсе ако су један или оба операнда НаН.
- Оператор једнакости == враћа нетачно ако је било који операнд НаН.
- Оператор неједнакости != враћа тачно ако је било који операнд НаН.
Пример:
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. иснН() Браћо
Овај метод се користи за проверу да ли је вредност НаН.
Пример:
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
3. Плутајући тип не ствара изузетак док ради са математичким вредностима
НаН прати ИЕЕЕ 754 са покретним зарезом стандардне. ИЕЕЕ 754 бројеви са помичним зарезом могу представљати позитивну или негативну бесконачност и НаН. Ове три вредности произилазе из прорачуна чији је резултат недефинисан или се не може тачно представити. Јава прати познате математичке чињенице. 1.0 / 0.0 је бесконачност, али остали су неодређени облици које Јава представља као НаН (не као број).
Пример:
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Креирај квиз