아이템 60. 정확한 답이 필요하다면 float와 double은 피하라 #145
Unanswered
Irisation23
asked this question in
3. 과제
Replies: 1 comment
-
잘 봤습니다~! 회고 쪽에 오타가 있네요( 이번 주 제 아이템을 정리하다가 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
📝 구성
Table of contents generated with markdown-toc
0. TL;DR 🔨
지양
하라.반올림 모드
는 정확한 연산을 돕는다.1. 금융 계산에 부동소수 타입의 사용
�float과 double은 부동소수를 사용한다.
금융계산처럼 명확해야 하는 계산에는 지양해야한다.
아래와 같은 코드가 있다.
기대한 결과는 사탕 1개 -> 사탕 2개 -> 사탕 3개 -> 사탕 4개 의 구매를 통해 1 + 2 + 3 + 4의 결과로 1달러의 소비를 원했다.
하지만 실제 결과는

좀 더 계산이 명확해야한다.
2. BigDecimal을 사용한 해법
부동소수점의 사용과 달리 명확한 계산결과가 반환된다.
하지만 BigDecimal은 두가지 단점이 있다.
이를 대안할 수 있는 방법이 있는데...
3. 정수 타입을 사용한 해법
위의 식을 다시 생각 해보면 다룰 수 있는 값의 크기가 제한할 수있다. (꼭 소수점을 사용하지 않아도 계산이 된다.)
즉 아래와 같은 코드로 작성이 가능하다.
결과는 아래와 같다.

4. 핵심 요약 📚
5. 회고 🧹
2023.03.19 일
Beta Was this translation helpful? Give feedback.
All reactions