Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで複利を計算するプログラムの書き方【初心者向け解説】

はじめに

本記事では、Javaを使って複利(Compound Interest)を計算する方法について解説します。複利とは、元本だけでなく、それまでに発生した利息にも利息がつく仕組みのことで、単利と比べて利率が高くなるのが特徴です。

複利の計算式

複利は以下の数式で求めることができます。

元本 × (1 + (利率 ÷ 100))^期間 − 元本

つまり、「元本に複利係数を掛けた金額」から「元本」を差し引いたものが、実際に得られる複利(利息)となります。

実行例の概要

今回のデモでは、次のような入力と出力を想定します。

入力例:

元本を入力してください : 100000
利率を入力してください : 5
期間(年数)を入力してください : 3

出力例:

複利は : 15762.50000000001

アルゴリズム

処理の流れは以下の通りです。

  1. 処理を開始する(START)
  2. double型の変数 principle(元本)、rate(利率)、time(期間)、compound_interest(複利)を宣言する
  3. ユーザーから元本・利率・期間の値を読み込む
  4. 「principle * (Math.pow((1 + rate / 100), time)) - principle」を計算し、結果を compound_interest 変数に格納する
  5. compound_interest の値を画面に表示する
  6. 処理を終了する(STOP)

サンプルコード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

まとめ

Javaでは、Math.pow()メソッドを使うことで、累乗を含む複利の計算式をシンプルに実装できます。ユーザーからの入力を受け付けるパターンと、値を固定して計算するパターンの両方を理解しておくと、さまざまな場面で応用できます。浮動小数点演算の誤差が出力に現れることがあるため、実務ではBigDecimalクラスの利用も検討するとよいでしょう。

  1. Javaで台形の面積を求めるプログラムの作成方法を解説

    この記事では、Javaを使って台形(トラペジウム)の面積を求める方法について詳しく解説します。台形とは、少なくとも1組の対辺が互いに平行になっている四角形のことです。平行な2つの辺は「底辺」と呼ばれ、平行でない残りの2つの辺は「脚」と呼ばれます。英語圏では trapezoid(トラペゾイド)と呼ばれることもあります。 台形の面積は、次の公式を使って計算できます。 面積 = (高さ ÷ 2) × (上底 + 下底) すなわち、 面積 = ½ × (平行な2辺の長さの合計) × (平行な2辺間の垂直距離) 以下に具体的なイメージを示します。平行な2辺の長さを a、b、台形の高さを h としたとき

  2. 【Java入門】長方形の周囲(外周)を求めるプログラムの作り方

    長方形の周囲とは? この記事では、Javaを使って長方形の周囲(外周)を求める方法を解説します。長方形の周囲とは、長方形の4つの辺すべての長さを足し合わせた合計のことで、次の図のように「縦の辺2本」と「横の辺2本」の長さを合計したものに相当します。 長方形は向かい合う辺の長さが等しいという性質を持つため、周囲は次の式で計算できます。 周囲 = 2 ×(縦の長さ + 横の長さ) 入力と出力の例 たとえば、入力が次の値であるとします。 長方形の各辺の長さ:5, 8, 5, 8 このとき、期待される出力は次のとおりです。 Perimeter : 26 アルゴリズム 処理の流れは以下のようになりま