Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Java] int 타입과 double 타입 예외처리와 NaN, Infinity 본문
int 타입일 때, 0으로 나누면 예외처리된다
public class Divisor0Exception {
public static void main(String[] args) {
int a = 3;
int b = 0;
System.out.println("a / b = " + a/b);
}
}
⚠️ double 타입일 때, 0으로 나누면 예외처리되지 않는다
NaN(Not a Number)
public class Divisor0Exception {
public static void main(String[] args) {
int a = 3;
double b = 0.0;
System.out.println("a / b = " + a/b); // a / b = Infinity
}
}
public class Divisor0Exception {
public static void main(String[] args) {
int a = 3;
double b = 0.0;
System.out.println("a % b = " + a % b); // a % b = NaN
}
}
❗ double로 나눌때나 나눈 나머지를 구할 때는 체크해줘야 한다.
- Double.isInfinite( )
- Double.isNaN( )
- Double.isInfinite( )
- Double.isNaN( )
public class Divisor0Exception {
public static void main(String[] args) {
int a = 3;
double b = 0.0;
double share = a / b;
double rest = a % b;
if(Double.isInfinite(share)) {
System.out.println("0으로 나눌 수 없습니다.");
} else {
System.out.println("a / b = " + a / b);
}
if(Double.isNaN(rest)) {
System.out.println("0으로 나눈 나머지를 구할 수 없습니다.");
} else {
System.out.println("a % b = " + a % b);
}
}
}
'Backend > 자바' 카테고리의 다른 글
[Java] 1바이트, 1문자, 多문자 읽기 (0) | 2023.03.11 |
---|---|
[Java] 운영체제 위에서 돌아가는 프로그램과 운영체제에 독립적인 자바 (0) | 2023.03.08 |
[Java] 값의 허용범위와 캐스팅(Casting) (0) | 2023.02.27 |
[Java] 이스케이프 문자와 텍스트 블록 문법(Java13) (0) | 2023.02.27 |
[Java] 메모리번지와 변수 (0) | 2023.02.20 |
Comments