【问题标题】:How to calculate NPV如何计算净现值
【发布时间】:2010-01-08 12:16:54
【问题描述】:

我想使用 PHP 计算 NPV(净现值)。

以下是我的详细信息。

折扣率:15% 每年的现金流量值: 第一年:110000 第二年:122000 第三年:135200 第四年:149720 第 5 年:157706 六年级:166091

我正在使用的 NPV 公式。

NPV = sum of all years( (Ci)/(1+r)^i)

i=1,2,3,4,5,...
Ci= Cash Flow for year i
r=rate of discount

任何帮助。

提前致谢

阿维纳什

【问题讨论】:

  • 向我们展示您编写的代码并解释它是如何不起作用的。
  • 嗯,这似乎是一个简单的计算。像 $result = $a + $b / $c 之类的东西。你能更具体一点吗?到目前为止,您尝试过做什么,具体来说您遇到了什么问题?另请注意,如果您询问的是 NPV 公式(而不是如何在 php 中进行计算),那么您将不在此处讨论主题。

标签: php


【解决方案1】:

您可以使用以下公式计算每年的 NPV: (value) / ((1 + 0.15) ^ (year)) 然后将所有结果相加得到最终 NPV - 其中 ^ 表示 的幂。

所以第二年将是:122000 / ((1.15)^ 2)。

在当前时间点,幂 ^ 值为 0

【讨论】:

  • 您能否编辑您的原始帖子以包含代码 - 算法似乎存在问题 - 您为第 1 年的条目计算什么值? - 计算中也可能出现一些舍入问题
  • 我还没有为此创建任何代码,我现在只是在纸上测试它。我将 0 作为第一年的值。会有问题吗?
  • 0 表示当前时间点 - 不是一年后,所以现在收到的 1 美元在这个时间点价值 1 美元,如果现在收到 1 美元的价值没有变化
  • 我不明白你想说什么,你能不能再描述一下??
  • Sorry by 0 是指用作功率的值还是指在该时间点收到的金额(等式中的分子)? - 之前的评论假设你在谈论价值的力量
【解决方案2】:

本文摘自 TommySzalapski 所做的工作:https://www.experts-exchange.com/questions/26875482/Finding-NPV-net-present-value-with-PHP.html

最好的方法是首先创建一系列现金流。请记住,数组从 0 开始,因此如果第 0 年没有现金流,则 [0] = 0。如果有现金支出,则将其设为负数。

$cf = array(0, 110000, 122000, 135200, 149720, 157706, 166091 );

然后为您的输入创建变量:

$years = 6;
$discountRate = 0.15;

然后你可以使用 TommySzalapski 公式

function npv($rate, $values, $year) {
    for ($i=$year;$i>=0;$i-=1) {
        $npv = ($values[$i] + $npv) / (1 + $rate);
    }
    return '$'.number_format($npv,2,'.',' ');
}

插件:

$NPV = npv($discountRate, $cf, 6); // You can also use the $years variable here

echo $NPV;

答案是 $445 751.54,这与 Excel 中给出的 NPV 公式相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多