산술 연산자
+, -, *, /, %
- 연산 전 피연산자의 타입을 일치 시킨다.(가장 큰 타입으로 일치)
- int형 끼리 나누기했을 경우 소수점 이하는 절사(e.g. 30 / 12 = 2)
- int형 보다 작은 타입은 int형으로 변환(e.g. byte, short, char)
- % 나머지 연산자는 나누는 피연자가 0이 아닌 정수만 허용(부호 무시)
정수의 사칙연산
public void method() {
int nData1 = 30;
int nData2 = 12;
System.out.printf("%d + %d = %d\n", nData1, nData2, nData1 + nData2);
System.out.printf("%d - %d = %d\n", nData1, nData2, nData1 - nData2);
System.out.printf("%d * %d = %d\n", nData1, nData2, nData1 * nData2);
System.out.printf("%d / %d = %d\n", nData1, nData2, nData1 / nData2);
System.out.printf("%d %% %d = %d\n", nData1, nData2, nData1 % nData2);
}
결과값
30 + 12 = 42
30 - 12 = 18
30 * 12 = 360
30 / 12 = 2
30 % 12 = 6
실수의 사칙연산
- %.2f: 소수 2번째 자리 까지 출력
public void method() {
double dData1 = 14.2;
double dData2 = 8.7;
System.out.printf("%.2f + %.2f = %.2f\n", dData1, dData2, (dData1 + dData2));
System.out.printf("%.2f - %.2f = %.2f\n", dData1, dData2, (dData1 - dData2));
System.out.printf("%.2f * %.2f = %.2f\n", dData1, dData2, (dData1 * dData2));
System.out.printf("%.2f / %.2f = %.2f\n", dData1, dData2, (dData1 / dData2));
System.out.printf("%.2f %% %.2f = %.2f\n", dData1, dData2, (dData1 % dData2));
}
결과값
14.20 + 8.70 = 22.90
14.20 - 8.70 = 5.50
14.20 * 8.70 = 123.54
14.20 / 8.70 = 1.63
14.20 % 8.70 = 5.50
예외사항
- 무한대검사: Double.isInfinite()
- NaN(Not a Number) 검사: Double.isNaN()
public void method() {
// System.out.println(5 / 0); // ArithmeticException
System.out.println(5 / 0.0); // Infinity(무한대)
System.out.println(5 % 0.0); // NaN(Not a Number)
System.out.println((5 / 0.0) + 2); // Infinity(무한대)
System.out.println((5 % 0.0) + 2); // NaN(Not a Number)
System.out.println(Double.isInfinite(5 / 0.0)); // 무한대인지 검사(true, false)
System.out.println(Double.isNaN(5 % 0.0)); // NaN인지 검사(true, false)
}
결과값
Infinity
NaN
Infinity
NaN
true
true
반올림 Math.round() 메소드
- 실수를 소수점 첫 째자리에서 반올림한 정수를 반환
public void method3() {
double dPi = 3.141592;
long lResult = Math.round(dPi); // 소수점 첫 째자리 반올림
double dRound_Pi = Math.round(dPi * 10000) / 10000.0; // 소수점 반올림
System.out.println(lResult);
System.out.println(dRound_Pi);
System.out.println((int)(dPi * 10000) / 10000.0); // 소수점 버림
}
결과값
3
3.1416
3.1415
'Developer TABLE > Java' 카테고리의 다른 글
단항 연산자 (0) | 2021.08.25 |
---|---|
연산자(Operator) (0) | 2021.08.25 |
출력 메소드(Print Method) (0) | 2021.08.23 |