定期储蓄账户利息计算 php
Regular savings account interest calculation php
好的,我已经遇到同样的问题几个星期了,无法完善它。
瞄准
建立一个定期存款储蓄账户系统,打印出当前时间的总余额。
问题
我目前的方程式:
如果利息是 6%,用户每月支付 200,复利是每月,余额将在 6 之后个月 1,220.61
我收到 1217.13
我测试了不同的时间长度和很多不同的在线计算器,我的计算总是少。
我的代码
<h2>Total Balance To Date</h2>
<?php
$p = 0; // Starting amount
$i = 0.06; // Interest rate
$c = 12; // compound frequency set to monthly
$n = 6/12; // Current time invested set to 6 months
$r = 200; // Monthly investment is 200
$x = $i / $c;
$y = pow((1 + $x), ($n * $c));
if($p!=0)
{
$vf = $p * $y + ($r * ($y - 1) / $x);
}
else
{
$vf = 1 + $y + ($r * ($y - 1) / $x);
}
?>
<p>£<?php echo round($vf, 2, PHP_ROUND_HALF_UP); ?></p> // Comes out at 1217.13
LINK 到沙盒 https://3v4l.org/9X7OH
设置
q = pow(1.06 , 1.0/12) = 1.0048675505653430
和计算
200*(q+q^2+q^3+q^4+q^5+q^6) = 200*q*(q^6-1)/(q-1)
给出结果
1220.61037336530790
这显然是在线计算器所使用的。有点不对,至于名义利率,月复利应该是
q = 1 + 0.06/12 = 1.005
在
的 6 个月后产生余额
1221.1758776293781
如你所见,你的公式几乎正确,应该是
$vf = $p * $y + ($r * (1 + $x) * ($y - 1) / $x);
由于利率是在月初存入的,所以第一个利率被复合为 r*(1+x)^6
,最后一个利率为 r*(1+x)
。但是,else
分支中的第二个公式根本没有意义。
好的,我已经遇到同样的问题几个星期了,无法完善它。
瞄准
建立一个定期存款储蓄账户系统,打印出当前时间的总余额。
问题
我目前的方程式:
如果利息是 6%,用户每月支付 200,复利是每月,余额将在 6 之后个月 1,220.61
我收到 1217.13
我测试了不同的时间长度和很多不同的在线计算器,我的计算总是少。
我的代码
<h2>Total Balance To Date</h2>
<?php
$p = 0; // Starting amount
$i = 0.06; // Interest rate
$c = 12; // compound frequency set to monthly
$n = 6/12; // Current time invested set to 6 months
$r = 200; // Monthly investment is 200
$x = $i / $c;
$y = pow((1 + $x), ($n * $c));
if($p!=0)
{
$vf = $p * $y + ($r * ($y - 1) / $x);
}
else
{
$vf = 1 + $y + ($r * ($y - 1) / $x);
}
?>
<p>£<?php echo round($vf, 2, PHP_ROUND_HALF_UP); ?></p> // Comes out at 1217.13
LINK 到沙盒 https://3v4l.org/9X7OH
设置
q = pow(1.06 , 1.0/12) = 1.0048675505653430
和计算
200*(q+q^2+q^3+q^4+q^5+q^6) = 200*q*(q^6-1)/(q-1)
给出结果
1220.61037336530790
这显然是在线计算器所使用的。有点不对,至于名义利率,月复利应该是
q = 1 + 0.06/12 = 1.005
在
的 6 个月后产生余额1221.1758776293781
如你所见,你的公式几乎正确,应该是
$vf = $p * $y + ($r * (1 + $x) * ($y - 1) / $x);
由于利率是在月初存入的,所以第一个利率被复合为 r*(1+x)^6
,最后一个利率为 r*(1+x)
。但是,else
分支中的第二个公式根本没有意义。