티스토리 뷰

발생일: 2009.11.05

문제:
디자인 패턴 책을 읽으면서 예제를 따라해보던 중,
double 의 합계 계산에서 뭔가 이상한 점을 발견했다.

        double a = 1.13;
        double b = 0.86;
        System.out.println(a + b);

이렇게 했을 때, 그 결과가 1.99가 나와야 정상인데,
1.9899999999999998 가 나와버린다.

움메... 이거 왜 이럴까...

해결책:
float 과 double 타입은 과학과 엔지니어링 분야의 계산을 위한 목적으로 설계되었다.
그러나 정확한 결과를 제공하지는 않기 때문에, 주의해서 사용해야 한다고 한다.

그렇기 때문에 float 과 double 타입은 특히 화폐 계산에 부적합하다.
float이나 double은 0.1(혹은 negative power of ten)을 정확하게 표현하지 못하기 때문이다.

자세한 내용은 아래 포스트를 참고하자.



*
해당 내용을 검색하다가 형변환과 관련한 유용한 포스트를 찾았다.
참고하자.




반응형
댓글
공지사항