0

公式要求变量。我已经看遍了,找不到这些变量是什么以及它们应该代表什么值。

RATE($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1)

有人熟悉这个功能吗?你知道变量代表什么值吗?

4

2 回答 2

3

从 Excel 帮助文件:

RATE(nper,pmt,pv,fv,type,guess)

有关参数 nper、pmt、pv、fv 和 type 的完整描述,请参阅 PV。

  • Nper - 是年金中的支付期总数。
  • Pmt - 是每期支付的款项,在年金的整个生命周期内不能改变。通常,pmt 包括本金和利息,但不包括其他费用或税款。如果省略 pmt,则必须包含 fv 参数。
  • Pv - 是现值 - 一系列未来付款现在价值的总金额。
  • Fv - 是您希望在最后一次付款后获得的未来价值或现金余额。如果省略 fv,则假定为 0(例如,贷款的未来价值为 0)。
  • 类型 - 是数字 0 或 1,表示付款的到期时间。

    如果付款到期,则设置类型等于以下内容:

    • 0 或省略 - 在期末
    • 1 - 期初
  • 猜测 - 是您对费率的猜测。

    如果省略猜测,则假定为 10%。
    如果 RATE 不收敛,请尝试不同的猜测值。如果guess 在 0 和 1 之间,RATE 通常会收敛。

评论

确保您对用于指定guess 和nper 的单位保持一致。如果您以 12% 的年利率每月支付四年期贷款,请使用 12%/12 进行猜测,使用 4*12 进行 nper。如果您每年支付同一笔贷款,请使用 12% 进行猜测,使用 4 进行 nper

于 2013-01-18T18:19:45.270 回答
1

我不知道你是否需要实现这个功能,但无论如何,我查看了这个算法是如何构建的,即使我无法访问 excel 源代码(或谷歌工作表),我发现这不是一个简单的计算。关于这个数学,可以在这里阅读更多内容:

https://brownmath.com/bsci/loan.htm#Eq8

PHP 中的函数可能是这样的:

function rate($nprest, $vlrparc, $vp, $guess = 0.25) {
    $maxit = 100;
    $precision = 14;
    $guess = round($guess,$precision);
    for ($i=0 ; $i<$maxit ; $i++) {
        $divdnd = $vlrparc - ( $vlrparc * (pow(1 + $guess , -$nprest)) ) - ($vp * $guess);
        $divisor = $nprest * $vlrparc * pow(1 + $guess , (-$nprest - 1)) - $vp;
        $newguess = $guess - ( $divdnd / $divisor );
        $newguess = round($newguess, $precision);
        if ($newguess == $guess) {
            return $newguess;
        } else {
            $guess = $newguess;
        }
    }
    return null;
}
于 2017-10-26T12:11:40.260 回答