8% と 12% の割引率を使用して各プロジェクトの正味現在価値 (NPV) を計算する(Java 実装)

正味現在価値の計算

以下は、Java を使用して 8% および 12% の割引率で各プロジェクトの正味現在価値 (NPV) を計算する実装例です。

実装コード(Java):


package com.example.npv;

import java.math.BigDecimal;

public class NetPresentValueCalculator {

    public static void main(String[] args) {
        // 各プロジェクトのキャッシュフロー
        int[] project1 = {-100000, 10000, 10000, 10000, 20000, 100000};
        int[] project2 = {-1000000, 200000, 200000, 200000, 200000, 300000};
        int[] project3 = {-100000, 30000, 30000, 30000, 30000, 30000};
        int[] project4 = {-120000, 30000, 30000, 30000, 30000, 75000};

        // 割引率
        double[] discountRates = {0.08, 0.12};
        double[][] discountFactors = new double[2][6];

        // 割引係数の計算
        for (int i = 0; i < discountRates.length; i++) {
            for (int j = 0; j < project1.length; j++) {
                discountFactors[i][j] = 1 / Math.pow(discountRates[i] + 1, j);
                BigDecimal rounded = new BigDecimal(discountFactors[i][j]).setScale(4, BigDecimal.ROUND_HALF_UP);
                discountFactors[i][j] = rounded.doubleValue();
            }
        }

        // 割引係数の出力
        for (int i = 0; i < discountFactors.length; i++) {
            for (int j = 0; j < 6; j++) {
                System.out.println((i == 0 ? "8% 割引率 " : "12% 割引率 ") + j + " 年目: " + discountFactors[i][j]);
            }
        }

        // 各プロジェクトの NPV 計算
        int[] result1 = calculateNpv(project1, discountFactors);
        int[] result2 = calculateNpv(project2, discountFactors);
        int[] result3 = calculateNpv(project3, discountFactors);
        int[] result4 = calculateNpv(project4, discountFactors);

        // 結果の出力
        System.out.println("プロジェクト 1 の NPV: 8% = " + result1[0] + ", 12% = " + result1[1]);
        System.out.println("プロジェクト 2 の NPV: 8% = " + result2[0] + ", 12% = " + result2[1]);
        System.out.println("プロジェクト 3 の NPV: 8% = " + result3[0] + ", 12% = " + result3[1]);
        System.out.println("プロジェクト 4 の NPV: 8% = " + result4[0] + ", 12% = " + result4[1]);
    }

    // NPV 計算メソッド
    private static int[] calculateNpv(int[] cashFlows, double[][] discountFactors) {
        int[] npvResults = new int[2];

        for (int i = 0; i < 2; i++) {
            int totalNpv = 0;
            for (int j = 0; j < cashFlows.length; j++) {
                totalNpv += (int) (cashFlows[j] * discountFactors[i][j]);
            }
            npvResults[i] = totalNpv;
        }

        return npvResults;
    }
}

実行結果の例:

各プロジェクトの正味現在価値 (NPV) は以下のようになります。

8% 割引率 0 年目: 1.0
8% 割引率 1 年目: 0.9259
8% 割引率 2 年目: 0.8573
8% 割引率 3 年目: 0.7938
8% 割引率 4 年目: 0.735
8% 割引率 5 年目: 0.6806
12% 割引率 0 年目: 1.0
12% 割引率 1 年目: 0.8929
12% 割引率 2 年目: 0.7972
12% 割引率 3 年目: 0.7118
12% 割引率 4 年目: 0.6355
12% 割引率 5 年目: 0.5674
プロジェクト 1 の NPV: 8% = 2050, 12% = -1996
プロジェクト 2 の NPV: 8% = -114860, 12% = -212470
プロジェクト 3 の NPV: 8% = 26810, 12% = 11700
プロジェクト 4 の NPV: 8% = 12545, 12% = 345

タグ: Java NetPresentValue FinancialCalculation

6月26日 21:28 投稿