# 예금 복리 계산 #### CODE <a class='btn btn-default' href='/codes/56366'>Link</a> ``` public class Money { public static void main(String[] args) { // 변수 생성 double a = 10000000; double r = 0.03; // 계산 int s = a * Math.pow(1+r,5); // 출력 System.out.printf("만기 금액: %d 원", s); } } ``` #### INPUT ``` ``` #### OUPUT ``` /root/var/tmp/2021_11_26_02_13_15_a3bcf404/Money.java:8: error: incompatible types: possible lossy conversion from double to int int s = a * Math.pow(1+r,5); ^ 1 error ```
### 타입 변환 다음 코드에서 에러가 발생합니다. ``` int s = a * Math.pow(1+r,5); ``` 우측 결과값은 double 타입인데, 이를 int 타입으로 대입하여 생긴 문제입니다. 따라서 양쪽의 타입을 맞추어야 합니다. #### 1. int 타입으로 일치 우측 값을 int로 캐스팅하여 해결할 수 있습니다. ``` int s = (int) (a * Math.pow(1+r, 5)); ``` #### 2. double 타입으로 일치 변수 s를 double로 변경하여 해결할 수도 있습니다. 그렇다면 출력부분도 %f를 사용해야겠죠? ``` double s = a * Math.pow(1+r,5); System.out.printf("만기 금액: %f 원", s); ```