자바에서의 의미 NaN ~이다 숫자가 아님 그리고 그것은에 존재합니다 java.lang.Double 그리고 java.lang.Float 수업. 정의되지 않은 숫자 값을 나타내는 특수 값입니다. 결과가 정의되지 않은 수학적 계산에서 NAN이 발생할 수 있습니다.
- 음수 Math.sqrt(-1)의 제곱근을 계산하려고 하면 음수의 제곱근이 정의되지 않았기 때문에 NaN이 반환됩니다.
- 0을 0으로 나누려고 하면 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을 반환하여 문제가 있음을 보여줍니다.
NaN을 만드는 방법?
의 도움으로 더블 또는 뜨다 NAN을 생성할 수 있는 클래스입니다.
더블 n = Double.NaN; // 더블 사용하기
플로트 n = Float.NaN; // 플로트 사용
NaN 값을 비교하는 방법은 무엇입니까?
NaN은 순서가 지정되어 있지 않습니다. 이는 NaN과의 비교가 false를 반환한다는 의미입니다. NaN을 다른 NaN과 비교하거나 관계 연산자를 사용하는 경우 결과는 항상 false입니다. 이제 NaN이 다양한 장면에서 어떻게 작동하는지 논의하겠습니다.
1. 관계 연산자와 NaN
- 수치 비교 연산자< <= >>=는 피연산자 중 하나 또는 둘 다 NaN인 경우 항상 false를 반환합니다.
- 항등 연산자 ==는 피연산자 중 하나라도 NaN이면 false를 반환합니다.
- 불평등 연산자 !=는 피연산자 중 하나라도 NaN이면 true를 반환합니다.
예:
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. isN() 브라더스
이 방법은 값이 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
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퀴즈 만들기