【发布时间】:2012-05-15 07:55:45
【问题描述】:
所以我到处搜索,但找不到合适的解决方案来解决我的问题。我需要用 PHP 计算(年)利率。
PHPExcel 上的函数 RATE 不起作用(returning NaN),我尝试使用this 编写另一个函数,当你有投资利率时:原始金额、最终金额、固定付款(一个月节省的金额)和投资期限(以月为单位)。
但它仍然不起作用。如果有帮助,这里是代码。
public function calculateRate($originalAmount, $finalAmount, $monthlySavings, $savingsPeriod) {
define('FINANCIAL_MAX_ITERATIONS', 128);
define('FINANCIAL_PRECISION', 1.0e-06);
$rate = 0.05; // guess
$i = 0;
do {
$equ = $monthlySavings * (pow(1 + $rate, $savingsPeriod) - 1) / $rate + $originalAmount * pow(1 + $rate, $savingsPeriod) + $finalAmount;
$derivative = ( $monthlySavings * ( $savingsPeriod * $rate * pow(1 + $rate, $savingsPeriod - 1 ) - pow(1 + $rate, $savingsPeriod) ) + 1 ) / ($rate * $rate) + $savingsPeriod * $originalAmount * pow(1 + $rate, $savingsPeriod - 1);
$div = $equ / $derivative;
$oldRate = $rate;
$rate -= $div;
++$i;
var_dump($i, $rate, $equ, $derivative, $div);
} while (abs($div) > FINANCIAL_PRECISION && ($i < FINANCIAL_MAX_ITERATIONS));
return $rate;
}
我需要一个可以计算利率的函数,但我找不到任何有用的函数...
【问题讨论】:
-
您是否尝试过自己编写函数?您要实施的公式是什么。尝试编写它,如果它不起作用,请在此处发布代码以便我们提供帮助。
-
您是否尝试过使用我作为“修复”提供的 PHPExcel RATE() 函数的编辑版本来回答您链接到的问题?如果是这样,您能否向我提供导致其失败的数据集的详细信息。如果我不知道 RATE 函数有什么问题,我无法修复它,它适用于我用来测试它的数据集。
-
pastebin 中的代码是我自己编写的,遵循finance.thinkanddone.com/… 的说明,finance.thinkanddone.com/… 也发布在我链接的另一个 stackoverflow 主题中。是的,我试过你提供的编辑版本,马克。因此,数据集例如:nper = 6(以月为单位),pmt = 1000(以欧元为单位),pv = 100 000(以欧元为单位),fv = 126068(以欧元为单位),type = 0(默认情况下)。就我而言,这不是贷款而是投资......也许这就是它不起作用的原因?
-
使用 MS Excel 和你的数字 =RATE(6,-1000,100000,-126068,0) 得到 4.847212728357280%(或 0.0484721272835728)的结果,我从修改后的 PHPExcel 中得到 0.048472127283573该函数的版本
-
所以我必须添加负值?例如,是 MS Excel,我计算了投资的最终价值:pv = 100000,(年)利率 = 0.03,pmt = 1000,nper = 6(以月为单位)。我找到了 126068...所以我想当我尝试找到利率时应该找到 3%...
标签: php phpexcel financial rate