# 예금 복리 계산
저는 처음에 double s = (a*Math.pow(1+r, n); 로 하고
출력할 때 System.out.printf("만기 금액: %.0f 원", s);
이렇게 했더니 '11592741 원' 으로 반올림되서 출력되더라구요!
저는 점을 사용하는게 소수점이하를 버리는 건 줄 알았는데
구글찾아보니까 반올림이라고 나와있었어요. 근데 지금까지는
소수점 버리려고 저런식으로 막 사용해도 문제가 없었던 것 같은데
우연이었던 걸까여..?
#### CODE <a class='btn btn-default' href='/codes/63377'>Link</a>
```
public class Money {
public static void main(String[] args) {
int a = 10000000;
int n = 5;
double r = 0.03;
int s = (int)(a*Math.pow(1+r, n));
System.out.printf("만기 금액: %d 원", s);
}
}
```
#### INPUT
```
```
#### OUPUT
```
만기 금액: 11592740 원
```
sehongpark님의 답변
# 찾아본대로 printf는
소수점 이하 자리수를
반올림하여 출력하는데요
정확히 버려야 할 경우에는
Math.floor()를 사용하면 좋습니다🙆♂️
👉 https://www.musttry.co.kr/tip/2020/06/13/tip-java-06/
👉 https://stackoverflow.com/questions/7747469/how-can-i-truncate-a-double-to-only-two-decimal-places-in-java
## 추가 구글링 키워드
- 자바 소수점 이하 버림
- java api floor
- java decimal format