답변:
정적의 사용 Double.isNaN(double)
방법, 또는 당신 Double
의 .isNaN()
방법을.
// 1. static method
if (Double.isNaN(doubleValue)) {
...
}
// 2. object's method
if (doubleObject.isNaN()) {
...
}
단순히하기 :
if (var == Double.NaN) {
...
}
이다 충분하지 어떻게 '로 인해 NaN를위한 IEEE 표준 및 부동 소수점 숫자가 정의됩니다.
Double.isNaN should be (true)
좋은 답변
value == Double.NaN
작동하지 않지만 정상적으로 작동 Double.isNaN(value)
합니다.
시도 Double.isNaN()
:
이 Double 값이 NaN (Not-a-Number)이면 true를, 그렇지 않으면 false를 반환합니다.
double.isNaN()
박스가없는 복식에는 연관된 방법이 없기 때문에 [ ]가 작동하지 않습니다.
Double.isNan()
하고 그렇지 double.IsNan()
않습니까?
via를 통해 값이 유한한지 확인하는 것이 Double.isFinite(value)
좋습니다. Java 8부터 Double
값이 NaN 및 무한대가 아닌 경우 한 번에 확인할 수 있는 새로운 메소드가 클래스에 있습니다.
/**
* Returns {@code true} if the argument is a finite floating-point
* value; returns {@code false} otherwise (for NaN and infinity
* arguments).
*
* @param d the {@code double} value to be tested
* @return {@code true} if the argument is a finite
* floating-point value, {@code false} otherwise.
* @since 1.8
*/
public static boolean isFinite(double d)
를 사용하여 NaN을 확인할 수 있습니다 var != var
. NaN
같지 않습니다 NaN
.
편집 : 이것은 아마도 최악의 방법 일 것입니다. 혼란스럽고 가독성이 좋지 않으며 전반적인 나쁜 습관입니다.
isNan
가독성이 더 좋지만 작동합니다. 그리고 isNan
메소드는 이것을 사용하여 확인합니다 NaN
.
isNaN
이것은 후드 아래에서 작동하지만 어떻게 작동합니까? 무언가가 어떻게 다른가요?
초보자에게는 실제적인 예가 필요합니다. 다음 코드를 시도하십시오.
public class Not_a_Number {
public static void main(String[] args) {
// TODO Auto-generated method stub
String message = "0.0/0.0 is NaN.\nsimilarly Math.sqrt(-1) is NaN.";
String dottedLine = "------------------------------------------------";
Double numerator = -2.0;
Double denominator = -2.0;
while (denominator <= 1) {
Double x = numerator/denominator;
Double y = new Double (x);
boolean z = y.isNaN();
System.out.println("y = " + y);
System.out.println("z = " + z);
if (z == true){
System.out.println(message);
}
else {
System.out.println("Hi, everyone");
}
numerator = numerator + 1;
denominator = denominator +1;
System.out.println(dottedLine);
} // end of while
} // end of main
} // end of class