首页 > 编程语言 >贴现率计算程序(java)

贴现率计算程序(java)

时间:2024-03-11 21:45:18浏览次数:26  
标签:贴现率 initialInvestment java double 程序 System sc cashFlows

折现率公式:

 CF0:成本

CFi:第i期收入金额

r:折现率

java代码:

import java.util.ArrayList;
import java.util.Scanner;

public class Test {

    public static double calculateNPV(double initialInvestment, ArrayList<Double> cashFlows, double discountRate) {
        double npv = -initialInvestment; // 初始投资为负值

        for (int t = 0; t < cashFlows.size(); t++) {
            double cashFlow = cashFlows.get(t);
            npv += cashFlow / Math.pow(1 + discountRate, t + 1); // 计算每期的现金流折现值并累加
        }

        return npv;
    }

    public static void main(String[] args) {

        double initialInvestment = 0; // 初始投资金额
        System.out.println("请输入初始投资金额/(元):");

        Scanner sc = new Scanner(System.in);
        initialInvestment = sc.nextDouble();

        System.out.println("请输入贴现率/(%):");
        double discountRate = sc.nextDouble() * 0.01; // 贴现率为10%

        System.out.println("请输入几期:");
        int num = sc.nextInt(); // 几期完成

        System.out.println("请输入每期现金数量/(元):");
        ArrayList<Double> cashFlows = new ArrayList<Double>(); // 未来现金流量列表
        for (int t = 0; t < num;t ++)
        {
            double temp = sc.nextDouble();
            cashFlows.add(temp);
        }

        // 计算净现值
        double npv = calculateNPV(initialInvestment, cashFlows, discountRate);
        System.out.println("净现值为: " + npv);
    }

}

 

标签:贴现率,initialInvestment,java,double,程序,System,sc,cashFlows
From: https://www.cnblogs.com/JIANGzihao0222/p/18067132

相关文章

  • Java HashMap 和 HashSet 的高效使用技巧
    JavaHashMapHashMap是一种哈希表,它存储键值对。键用于查找值,就像数组中的索引一样。HashMap的优势在于它可以使用任何类型作为键,并且查找速度很快。创建HashMap//导入HashMap类importjava.util.HashMap;publicclassMain{publicstaticvoidmain(String[]a......
  • 实验1 C语言输入输出和简单程序编写
    task1_1.c`#include<stdio.h>include<stdlib.h>intmain(){printf("O\n");printf("\n");printf("II\n");printf("O\n");printf("\n");printf("II\n");system("pause&......
  • java环境搭建
    1.计算机硬件冯诺依曼体系输入设备,输出设备,计算器,控制器(这两个就是cpu),存储器(包含内存和外存,外存就是硬盘啥的)2.计算机软件系统软件:doswindows,linux,mac,应用软件:wps3.打开cmd方式点击windosws功能键,然后左键点击windows系统,然后左键点击命令提示符。(如果要以管理员身份......
  • mybatis02 - 第一个Mybatis程序
     1、开发思路2、搭建环境2.1、数据库--创建数据库CREATEDATABASE`mybatis`;--切换数据库USE`mybatis`;--创建表CREATETABLEIFNOTEXISTS`user`(`id`INT(20)NOTNULLCOMMENT'序号',`name`VARCHAR(30)DEFAULTNULLCOMMENT'账号',`pwd`......
  • k01创建第一个springboot程序
    创建springboot程序的方式有两种1、在spring官网创建,https://start.spring.io/2、使用idea程序创建。一般情况下我们都是使用idea软件创建的,因为这样会更方便1、使用spring官网创建(SpringInitializr)(初学使用)(一般不用)我们只需要在网站上输入(https://start.spring.i......
  • 利用JavaRestClient依赖使用java操作索引库
    引入依赖<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></depend......
  • Java高并发讲解:守护线程——在源代码中分析setDaemon()
    Java高并发讲解:守护线程——在源代码中分析setDaemon()提出问题我们都知道Java线程分为主线程和守护线程,守护线程是需要手动指定的(setDaemon(true)......
  • Java基础知识篇——Java基本介绍
    一、什么是JavaJava是SunMicrosystems于1995年首次发布的一种编程语言和计算平台。编程语言还是比较好理解的,什么是计算平台呢?计算平台是电脑中运行应用程序(软件的环境),包括硬件环境和软件环境。一般系统平台包括一台电脑的硬件体系结构,操作系统、运行时库。Java是快......
  • Java学习笔记——第十二天
    面向对象高级(三)内部类内部类是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。场景:当一个类的内部,包含了一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类。比如:汽车类中的发动机类,发动......
  • 解决Java中文显示乱码问题的原因与方案
    简介在Java编程中,经常会遇到中文显示乱码的问题,这给开发者带来了不少困扰。本文将深入探讨Java中文显示乱码问题的原因,并提供一些解决方案以帮助开发者解决这一问题。问题中文显示乱码通常表现为输出的中文字符变成了一些无法识别的符号或者乱码字符,这给程序的可读性和用户体......