◎ JAVA
정수와 실수
public class Test14 {
public static void main(String[] args) {
//정수 : byte(1), short(2), int(4), long(8)
//실수 : float(4), double(8)
//(주의) 실수는 어떠한 경우에도 정수보다 큽니다
//int a = 2200000000;
int a = 2100000000 + 100000000;//범위 초과
System.out.println(a);
long b = 2200000000L;//long은 int와 구분하기 위해 표시를 붙임
System.out.println(b);
long c = 2100000000L + 100000000L;
System.out.println(c);
double d = 1.934812578971234598172459872493587129348712912;
float e = 1.934812578971234598172459872493587129348712912F;
System.out.println(d);
System.out.println(e);
}
}
- 정수로 계산 해야지 정확히 계산된다.
- 실수로 하면 약 0.0000001% 와 같이 오차범위가 생길 수 있다.
int discount = 100 - 시즌할인 / 100;
논리(boolean)
- 판정 결과를 저장하기 위한 형태
- 반드시 예(true, 참)와 아니오(false, 거짓)만 저장 가능
윤년 계산기
public class Test07 {
public static void main(String[] args) {
//윤년 계산기 만들기
//윤년이란 실제 1년과 달력상의 1년의 차이 때문에 생기는 날짜를 메꾸기 위한 해입니다.
//실제 = 365.24..일, 달력 = 365일
//윤년의 규칙은 다음과 같습니다.
//- 윤년에는 2월29일까지 있습니다. (366일)
//- 4의 배수인 해는 윤년으로 간주합니다.
//- 100의 배수인 해는 4의 배수일지라도 윤년이 아닌 것으로 간주합니다.
//- 400의 배수인 해는 100의 배수일지라도 윤년으로 간주합니다.
//이 기준을 토대로 특정 연도가 윤년인지 아닌지 판정해서 출력
//입력
int year = 2020;
//처리
boolean leapYear4 = year % 4 == 0;
boolean leapYear100 = year % 100 == 0;
boolean leapYear400 = year % 400 == 0;
boolean check = leapYear4 && !leapYear100 || leapYear400;
//(참고) 논리에서 true와 같냐는 코드는 덧셈의 +0, 곱셈의 *1과 같은 코드이다.
//출력
System.out.println(check);
}
}