실수형 연산 시 결과값으로 NaN(Not-a-Number) 값과 Infinity 이 출력될때...
NaN :
Infinity :
System.out.println(1/0f); //Infinity : 0으로 나눌때 infinity 반환 or 양/음의 무한대로 연산될때
System.out.println(1%0f); //NaN : 숫자가 아닌 것을 연산하면 NaN
System.out.println(Math.sqrt(-1)); //NaN
- 자바에서 비교규칙
1) 음의 무한대 < 음수 < 0 < 양수 < 양의 무한대
2) 양의 무한대 비교는 모두 같음(true), 음의 무한대 비교는 모두 같음(true)
3) NaN과의 비교는 무조건 거짓(false)
해결방안
예외처리
//해결방안
double a = 1;
double b = 0;
double k =a/b;
if (a == Double.NaN){
//처리
}
double i=Math.sqar(-1);
if (Double.isNaN(i)){
//처리
}
https://killsia.tistory.com/entry/%EC%9E%90%EB%B0%94-Infinity-%EC%B2%98%EB%A6%AC?category=426417
isFinitepublic static boolean isFinite(double d)
Returns true if the argument is a finite floating-point value; returns false otherwise (for NaN and infinity arguments).
Parameters:d - the double value to be testedReturns:true if the argument is a finite floating-point value, false otherwise.Since:1.8
isNaNpublic static boolean isNaN(double v)
Returns true if the specified number is a Not-a-Number (NaN) value, false otherwise.
Parameters:v - the value to be tested.Returns:true if the value of the argument is NaN; false otherwise.
'JAVA > 1' 카테고리의 다른 글
자바 실행파일/이클립스 jar 파일/ .bat 파일 만들기 (0) | 2020.02.20 |
---|---|
java.net.BindException 에러 (0) | 2020.02.10 |
이클립스 jar 파일 추가 (0) | 2020.01.29 |
JAVA JDK 환경변수 설정 (0) | 2020.01.06 |
이클립스 UTF-8 설정 (0) | 2020.01.06 |