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);
            }
        }        
    }

}

 

posted @ 2021-03-09 17:30  西西里啊  阅读(757)  评论(0编辑  收藏  举报