变量的公式调用。我看了一遍,无法找到这些变量是什么以及它们应该代表什么值。
RATE($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1)
是否有人熟悉此功能?你知道变量代表什么值吗?
答案 0 :(得分:3)
从Excel帮助文件:
RATE(nper,pmt,pv,fv,type,guess)
有关参数nper,pmt,pv,fv和的完整描述 类型,见PV。
- Nper - 是年金中的付款期总数。
- Pmt - 是每个期间的付款,不能在年金的生命周期内更改。通常,pmt包括本金和利息 但没有其他费用或税收。如果省略pmt,则必须包含fv 参数。
- Pv - 是现值 - 现在一系列未来付款的总金额。
- Fv - 是您在上次付款后想要获得的未来价值或现金余额。如果省略fv,则假定为0( 例如,贷款的未来价值为0)。
类型 - 是数字0或1,表示付款何时到期。
如果付款到期,则将类型设置为以下内容:
- 0或省略 - 在期末
- 1 - 在期初
猜猜 - 你猜对率是多少。
如果省略猜测,则假定为10% 如果RATE不收敛,请尝试不同的猜测值。如果猜测在0和1之间,则RATE通常会收敛。
备注
确保您对所使用的单位保持一致 指定猜测和nper。如果您每月支付四年的款项 以12%的年利率贷款,使用12%/ 12作为猜测,4 * 12作为 NPER。如果您使用相同的贷款进行年度付款,请使用12%进行猜测 和4为nper
答案 1 :(得分: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;
}