3/09 JAVA代码编程实现计算每个项目的净现值(NPV)
package test; import java.math.BigDecimal; public class TestMain { public static void main(String[] args) { // TODO 自动生成的方法存根 // 创建二维数组储存每个项目每年利润 int [][] money = new int [6][4]; // 填入利润 money[0][0] = -100000; money[0][1] = -1000000; money[0][2] = -100000; money[0][3] = -120000; money[1][0] = 10000; money[1][1] = 200000; money[1][2] = 30000; money[1][3] = 30000; money[2][0] = 10000; money[2][1] = 200000; money[2][2] = 30000; money[2][3] = 30000; money[3][0] = 10000; money[3][1] = 200000; money[3][2] = 30000; money[3][3] = 30000; money[4][0] = 20000; money[4][1] = 200000; money[4][2] = 30000; money[4][3] = 30000; money[5][0] = 100000; money[5][1] = 300000; money[5][2] = 30000; money[5][3] = 75000; // 贴现率数组 贴现因子 double[] txl = new double[] {0.08,0.12}; double [] [] tx = new double [2][6]; // 贴现因子计算 for (int i = 0; i < 2; i++) { for (int j = 0; j < 6; j++) { // 计算贴现因子 tx[i][j] = 1/Math.pow(1+txl[i], j); // 将因子四舍五入 BigDecimal b = new BigDecimal(tx[i][j]); tx[i][j] = b.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); // 输出 if(i==0) System.out.println("贴现率为0.08 , 第"+j+"年的贴现因子为 : "+tx[i][j]); else System.out.println("贴现率为0.12 , 第"+j+"年的贴现因子为 : "+tx[i][j]); } } // 净现值计算 for (int i = 0; i < 2; i++) { for (int j2 = 0; j2 < 4; j2++) { double jx = 0 ; for (int j = 0; j < 6; j++) { // 计算每年净现值 jx = money[j][j2] * tx[i][j]+jx; } // 输出 if(i==0) System.out.println("贴现率为0.08 , 项目"+(j2+1)+" 的净现值为 : "+jx); else System.out.println("贴现率为0.12 , 项目"+(j2+1)+" 的净现值为 : "+jx); } } } }