1. 실수 float와 double
- 위의 예제에서 보면 다 똑같이 답이 나와야 될 것 같지만, 사실 1번과 3번만 같고 2번만 다르다.
이것이 다른 이유는 float와 double의 정밀도 차이에 있다.
- 즉, float는 7자리까지, double은 15자리까지 차지할 수 있기 때문에, 그 이상의 자리는 오차가
발생할 수 있다.
- 그런데 "2번과 3번은 같아야 되는거 아닌가?" 라고 생각할 수 있다. 하지만 같지 않은 이유는
이미 f 변수는 float 형식으로 저장되어 있기 때문에 double로 형변환하여도 이미 결과가 float로 나온다.
- float 예제
(위에서 말했듯이 float는 7자리까지만 정밀도가 가능하기에 7을 반올림 하여 6의 자리에 7이 된다.)
- 변환 예제(1)
(여기서는 8자리 이상의 숫자 자리를 쓰기 때문에 오차가 발생한다. -> 반올림)
(이러한 상황(오차가 있는 경우)이(가) 있다면, double을 쓰는 것이 좋다.)
- 변환 예제(2)
(그러나 실수형에서 정수는 반올림이 발생하지 않는다.)
'자바 > 기본적인 개념' 카테고리의 다른 글
연산자의 우선순위와 결합 규칙 (0) | 2021.01.01 |
---|---|
자동 형변환 (0) | 2021.01.01 |
실수형의 저장 형식과 부동 소수점의 오차 (0) | 2021.01.01 |
비트(bit)와 바이트(byte) 그리고 워드(word) (0) | 2020.12.31 |
형식화된 출력 - prinf() (0) | 2020.12.30 |