# 이번 주 수입은? #### CODE <a class='btn btn-default' href='/codes/30304'>Link</a> ``` public class Income { public static void main(String[] args) { /* 1. 변수 생성 */ double mon = 8.62; double tus = 10.23; double wen = 12.48; double tur = 7.82; double fri = 9.54; double all = (mon + thu + wen + thur + fri); /* 3. 총합 출력 */ System.out.println(all); } } ``` #### INPUT ``` ``` #### OUPUT ``` 48.690000000000005 ```
## 답변 **double 타입**은 정확히 떨어지는 수가 아닙니다. 따라서 소수점 이하의 정확도에 ***`오차`**가 생길 수 있습니다.* 자세한 내용은 하단의 링크 참조, 또는 구글링 "자바 double 부정확성"으로 검색해보시길..! ``` double weight = 72.4; weight += 0.2; System.out.println(weight); // 72.60000000000001 ``` ## 해결 `printf()` 메소드를 사용하여 소수점 이하 자리수를 제한해보세요. ``` // 소수점 이하 둘째 자리까지 출력 System.out.printf("%.2f\n", weight); // 72.60 ``` ## 참고자료 --- 1. float와 double의 부정확성 - https://gwpark.tistory.com/1729