Java – VS Code 個人国債などの複利の計算 on Ubuntu No.88

自己投資としてチャレンジしている内容を 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 code

https://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-quickstart

2-4. デフォルトで作成された App.java および AppTest.java を削除

rm ./comintsample02/src/main/java/org/example/compound/App.java
rm ./comintsample02/src/test/java/org/example/compound/AppTest.java

2-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 を開きます。

VSCode_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"
            ]
        }
    ]
}
launch.json

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. 参考情報

  1. 【答え合わせ】WealthNavi
  2. VS Code のインストール https://code.visualstudio.com/docs/setup/linux
  3. Maven のインストール Apache Kafka Word Count 実装 – Java No.442-3. Apache Maven のインストール” を参照
  4. Java – Visual Studio Code の利用 No.24
  5. launch.json https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

以上です。参考になりましたら幸いです。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です