실수형 연산 시 결과값으로 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

+ Recent posts