如何使用php来计算excel pmt

一直在试图实现在Excel中使用的PMTfunction到PHP。 我有公式,但计算显示不正确。

其30年期的6%利率,最终值为833333。

正确的答案应该是10,541。

付款在期末到期,所以types为零,现值为零。

<pre> $pv = 0; $fv = 833333; $i = 0.06/12; $n = 360; $pmt = (($pv - $fv) * $i )/ (1 - pow((1 + $i), (-$n))); echo $pmt; </pre> 

使用此链接作为公式的参考

我在PHPExcel中用来反映MS Excel公式的公式是:

 $PMT = (-$fv - $pv * pow(1 + $rate, $nper)) / (1 + $rate * $type) / ((pow(1 + $rate, $nper) - 1) / $rate); 

哪里

  • $利率=利率
  • $ nper =期数
  • $ fv是未来的价值
  • $ pv是现值
  • $ type是types

当我使用时,它返回与MS Excel相同的结果

 =PMT(6%/12, 360, 0, 833333, 0) 

并且当我使用时返回-10540.755358736(与MS Excel相同)的结果

 =PMT(0.06,30,0,833333,0) 

更清洁的解决scheme如下。

 * @param float $apr Interest rate. * @param integer $term Loan length in years. * @param float $loan The loan amount. function calPMT($apr, $term, $loan) { $term = $term * 12; $apr = $apr / 1200; $amount = $apr * -$loan * pow((1 + $apr), $term) / (1 - pow((1 + $apr), $term)); return round($amount); } function loanEMI() { echo $this->calPMT(16, 1, 1020000); } 

这将给你精确的PMT,如在MS Excel。

来源: https //drastikbydesign.com/blog-entry/excel-pmt-php-cleaner

另一个我碰到的。 将来可能对某人有用。

 $pv = 0; $fv = 833333; $i = 0.06; $n = 30; $pmt = ((($pv *( pow((1+$i), $n) )) + $fv) * $i ) / (1 - ( pow((1+$i), $n) )); echo $pmt;