自己投資としてチャレンジしている内容を Blog で公開しています。今回は Java による 複利の計算方法について紹介します。(In English Java – Calculate the compound interest No.88)
▼1. 複利の計算
自己投資として株式投資、ロボアドバイザーの WealthNavi や、積み立て NISA 、個人国債などをしています。ここでの運用はすべて複利で行われています。
複利とは、元本に利子が付き、翌年は、元本+利子の合計に対し、利子が付くため、長期運用した場合、単利と比べ大きく資産が増えます。計算式は以下となります。複利 Wiki

このブログでは、Java で複利の計算をします。
▼2. 準備
2-1. Visual Studio Code のインストール
sudo snap install --classic codehttps://code.visualstudio.com/docs/setup/linux
2-2. Maven のインストール
Apache Kafka Word Count 実装 – Java No.44 “2-3. Apache Maven のインストール” の部分
2-3. Apache Maven によるプロジェクトを作成
mvn archetype:generate -DinteractiveMode=false -DgroupId=org.example.compound -DartifactId=comintsample02 -DarchetypeArtifactId=maven-archetype-quickstart2-4. デフォルトで作成された App.java および AppTest.java を削除
rm ./comintsample02/src/main/java/org/example/compound/App.java
rm ./comintsample02/src/test/java/org/example/compound/AppTest.java2-5. Visual Studio Code 起動
cd ./mysqlconnection
code .▼3. 複利を計算する Java コード
3-1. 複利を計算する java ファイル作成
ここでは comint.java のファイルを作成し、複利の計算をします。
複利の計算には、元本、年利率、運用年数の 3 つの入力が必要となります。Java の入力として以下のように設定します。
- 元本 args[0]
- 年利率 args[1]
- 運用年数 args[2]
package org.example.compound;
public class comint {
public static double compoundInterest(double principal, double rate, double time) {
if (time <= 0) {
return principal;
} else {
double amount = principal * Math.pow(1 + (rate / 100), time);
return amount;
}
}
public static void main(String[] args) {
double principal = Double.parseDouble(args[0]);
System.out.println("Principal: " + principal);
double rate = Double.parseDouble(args[1]);
System.out.println("rate: "+ rate);
double time = Double.parseDouble(args[2]);
System.out.println("Year: " + time);
System.out.println("Compound Interest is: " + Math.round(compoundInterest(principal,rate,time)));
System.out.println("Profit after 20% tax is: " + Math.round((compoundInterest(principal,rate,time)-principal)*0.8));
}
}3-2. このまま実行するとエラーが発生
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at org.example.compound.comint.main(comint.java:14)3-3, Java の実行時渡す引数を設定 lunch.json
初期値を設定するため lunch.json を作成します。以下の Debug のアイコンから “Create a lunch.json file” をクリックし、lunch.json を開きます。

以下の launch.json の設定ファイルに java のコードに渡す引数 args を 3 つ指定し、ファイルを保存します (Ctrl+S)。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Launch Current File",
"request": "launch",
"mainClass": "${file}"
},
{
"type": "java",
"name": "Launch comint",
"request": "launch",
"mainClass": "org.example.compound.comint",
"projectName": "comintsample02",
"args": [
"1000000",
"0.05",
"3"
]
}
]
}
3-4. Debug 実行した結果
例えば、個人向け国債を購入した例では、元本 100 万円、金利 0.05 % で 3 年運用すると、3 年後受け取る時、100万千五百一円となり、個人向け国債の譲渡益や償還益についても、税率20.315%の税金がかかるので、ここでは、20% として計算すると、最終的に 千二百一円の利益となります。
Principal: 1000000.0 rate: 0.05 Year: 3.0 Compound Interest is: 1001501 Profit after 20% tax is: 1201
3-5. 元本、年利率、運用年数を変更し再計算
元本、年利率、運用年数を変更したい場合は、引数を変更し以下のように実行します。
java -cp /home/xxx/comintsample02/target/classes org.example.compound.comint 1000000 5 10
Principal: 1000000.0
rate: 5.0
Year: 10.0
Compound Interest is: 1628895
Profit after 20% tax is: 503116▼4. 参考情報
- 【答え合わせ】WealthNavi
- VS Code のインストール https://code.visualstudio.com/docs/setup/linux
- Maven のインストール Apache Kafka Word Count 実装 – Java No.44 “2-3. Apache Maven のインストール” を参照
- Java – Visual Studio Code の利用 No.24
- launch.json https://code.visualstudio.com/docs/editor/debugging#_launch-configurations
以上です。参考になりましたら幸いです。