
참고
자바의 정석
산술 연산자에는 사칙 연산자 (+, -, * , /)와 나머지 연산자(%)가 있다.
System.out.println(3/0); // ERROR: ArithemeticException
System.out.println(3/0.0) // Infinity 출력
| x | y | x/y | x%y |
|---|---|---|---|
| 유한수 | ±0.0 | ±Infinity | NaN |
| 유한수 | ±Infinity | ±0.0 | x |
| ±0.0 | ±0.0 | NaN | NaN |
| ±Infinity | 유한수 | ±Infinity | NaN |
| ±Infinity | ±Infinity | NaN | NaN |
NaN은 'Not a Number'를 줄인 것으로 숫자가 아니라는 것을 의미한다.
그리고 사칙연산자를 하면서 주의를 해야할 것이 해당 타입의 범위를 넘어서는지 그것을 주의하자! 연산을 하는 도중에 순서위치에 따라 오버플로우나 값의 손실이 발생하여 값이 예상과 다르게 나올수도 있기때문이다.
char ch = 'a';
ch = ch + 1; // ERROR: 연산결과가 정수형인데 문자형 타입으로 저장하기 때문이다.
ch++; // SUCCESS: 단항연산자로 증가는 가능하다.
char ch2 = 'a' + 1; // 리터럴간 연산은 형변환 없이 가능하다.
Math.round(3.14) // OUTPUT: 4