如何使用php计算excel pmt

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (299)

一直在尝试将excel中使用的pmt函数实现到php中。我有公式,但计算显示不正确。

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

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

付款到期末,因此类型为零,现值为零。

<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);

哪里

  • $ rate =利率
  • $ nper =期数
  • $ fv是未来价值
  • $ pv是现值
  • $ type是类型

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

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

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

=PMT(0.06,30,0,833333,0)
用户回答回答于

更清洁的解决方案如下。

* @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);
}

这将为您提供MS Excel中的精确PMT。

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

扫码关注云+社区

领取腾讯云代金券