Php 定期储蓄账户利息计算
好的,我已经有同样的问题好几个星期了,现在不能完善它 目标 建立一个定期存款账户系统,打印当前的总余额 问题 我现在的方程是: 如果利息6%且用户每月支付200英镑,且每月支付复利,则余额将在6个月后1220.61 我越来越1217.13 我测试了不同的时间长度和许多不同的在线计算器,我的计算总是较少 我的代码Php 定期储蓄账户利息计算,php,math,formula,calculator,Php,Math,Formula,Calculator,好的,我已经有同样的问题好几个星期了,现在不能完善它 目标 建立一个定期存款账户系统,打印当前的总余额 问题 我现在的方程是: 如果利息6%且用户每月支付200英镑,且每月支付复利,则余额将在6个月后1220.61 我越来越1217.13 我测试了不同的时间长度和许多不同的在线计算器,我的计算总是较少 我的代码 <h2>Total Balance To Date</h2> <?php $p = 0; // Starting amount $
<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
截至目前的总余额
英镑//以1217.13点报到
链接到沙盒设置
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
$vf = $p * $y + ($r * (1 + $x) * ($y - 1) / $x);
6个月后产生余额
1221.1758776293781
如你所见,你的公式几乎正确,应该是这样的
q = 1 + 0.06/12 = 1.005
$vf = $p * $y + ($r * (1 + $x) * ($y - 1) / $x);
由于利率是在月初存入的,因此第一个利率的复利为
r*(1+x)^6
,最后一个利率为r*(1+x)
。但是,else
分支中的第二个公式毫无意义。我得到1215.10,所以…在取整之前我得到1020.17587763…@MarcB:看来你上个月忘了计算了。不,我在php中运行了这个精确的代码,得到$vf=float(1215.1003757506)
我会添加一个指向沙盒的链接这看起来很棒,我在atm机上工作。但稍后我会尝试这个,当它起作用时,我会很高兴接受你的回答,再次感谢。我可以确认它非常有效,所以如果不需要声明,我很高兴,谢谢。