Php 定期储蓄账户利息计算

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 $

好的,我已经有同样的问题好几个星期了,现在不能完善它

目标

建立一个定期存款账户系统,打印当前的总余额

问题

我现在的方程是:

如果利息6%且用户每月支付200英镑,且每月支付复利,则余额将在6个月后1220.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
截至目前的总余额
英镑

//以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机上工作。但稍后我会尝试这个,当它起作用时,我会很高兴接受你的回答,再次感谢。我可以确认它非常有效,所以如果不需要声明,我很高兴,谢谢。