이 글에서는 자바(Java)를 활용해 복리 이자(Compound Interest)를 계산하는 방법을 단계별로 알아보겠습니다.
복리 이자 계산 공식
복리 이자는 아래 공식을 사용해 계산할 수 있습니다.
원금 × (1 + (이자율 / 100))^기간 − 원금
복리 이자란?
복리 이자는 원금뿐만 아니라 그동안 쌓인 이자에 대해서도 이자가 붙는 방식입니다. 이자가 이자를 낳는 구조이기 때문에 단리(Simple Interest) 방식에 비해 훨씬 높은 수익률을 기대할 수 있습니다.
실행 결과 미리 보기
입력 예시
원금을 입력하세요 : 100000 연 이자율을 입력하세요 : 5 기간(년)을 입력하세요 : 3
출력 예시
복리 이자는 : 15762.50000000001
알고리즘
STEP 1 – 시작 STEP 2 – double형 변수 principle(원금), rate(이자율), time(기간), compound_interest(복리 이자) 선언 STEP 3 – 사용자로부터 원금, 이자율, 기간 값을 입력받음 STEP 4 – "principle * Math.pow((1 + rate / 100), time) - principle" 연산으로 복리 이자를 계산하여 compound_interest 변수에 저장 STEP 5 – compound_interest 값 출력 STEP 6 – 종료
예제 1: 사용자 입력값으로 계산하기
아래 예제는 Scanner 객체를 사용해 사용자에게 값을 직접 입력받은 후 복리 이자를 계산합니다. 온라인 코딩 도구에서 직접 실행해 볼 수도 있습니다.
import java.util.Scanner;
public class CompoundInterest {
public static void main (String args[]){
double principle, rate, time, compound_interest;
System.out.println("필요한 패키지를 가져왔습니다");
Scanner my_scanner = new Scanner(System.in);
System.out.println("Scanner 객체가 생성되었습니다");
System.out.print("원금을 입력하세요 : ");
principle = my_scanner.nextInt();
System.out.print("연 이자율을 입력하세요 : ");
rate = my_scanner.nextInt();
System.out.print("기간(년)을 입력하세요 : ");
time = my_scanner.nextInt();
compound_interest = principle * (Math.pow((1 + rate / 100), time)) - principle;
System.out.println("복리 이자는 : " + compound_interest);
}
}출력 결과
필요한 패키지를 가져왔습니다 Scanner 객체가 생성되었습니다 원금을 입력하세요 : 100000 연 이자율을 입력하세요 : 5 기간(년)을 입력하세요 : 3 복리 이자는 : 15762.500000000015
예제 2: 미리 정의된 값으로 계산하기
이번에는 사용자 입력 없이 코드 안에 값이 미리 정의되어 있는 경우입니다. 변수에 저장된 값을 읽어와 그대로 콘솔에 출력하고 복리 이자를 계산합니다.
public class CompoundInterest {
public static void main (String args[]){
double principle, rate, time, compound_interest;
principle = 100000;
rate = 5;
time = 3;
System.out.printf("원금은 %f \n이자율은 %f \n기간(년)은 %f", principle, rate, time);
compound_interest = principle * (Math.pow((1 + rate / 100), time)) - principle;
System.out.println("\n복리 이자는: " + compound_interest);
}
}출력 결과
원금은 100000.000000 이자율은 5.000000 기간(년)은 3.000000 복리 이자는: 15762.50000000001
마무리
두 예제 모두 Math.pow() 메서드를 활용해 거듭제곱을 손쉽게 처리한다는 점이 핵심입니다. 예제 1처럼 Scanner를 사용하면 다양한 조건을 유연하게 테스트할 수 있고, 예제 2처럼 값을 고정하면 로직 검증이 간편합니다. 실제 금융 계산 프로그램을 만들 때는 소수점 자릿수 처리(BigDecimal 또는 String.format)도 함께 고려하면 더욱 정확한 결과를 얻을 수 있습니다.