繁体   English   中英

正确计算每日利息

[英]Calculate interest per day correctly

在这段代码中,我正在计算总利息并每天计算。 但是我得到的每天利息的价值是错误的。 结果输出 0.0027397 而不是 3.317。

$startdate = strtotime('2022-06-06');
$enddate = strtotime('2023-06-06');
$rate = 23.4;
$amount = 5798;
$days = (($enddate - $startdate) / 60 / 60 / 24);
                                                    
$years = number_format((int)$days / 365, 4);
$interest = number_format($amount * ($rate) * $years / 100, 2);
$interestperday = (int)($interest) / (int)($days);
                    
$currentdate = date('Y/m/d');
$datedifference = (int)((strtotime($currentdate) - $startdate) / 60 / 60 / 24);

$finalinterest = $datedifference * $interestperday;

number_format返回一个字符串。 因此你不能对字符串进行数学运算。 改用圆形

$startdate = strtotime('2022-06-06');
$enddate = strtotime('2023-06-06');
$rate = 23.4;
$amount = 5798;
$days = (($enddate - $startdate) / 60 / 60 / 24);

$years = round((int)$days / 365, 4);
$interest = round($amount * ($rate) * $years / 100, 2);
$interestperday = (int)($interest) / (int)($days);
$currentdate = date('Y/m/d');
$datedifference = (int)((strtotime($currentdate) - $startdate) / 60 / 60 / 24);
$finalinterest = $datedifference * $interestperday;
echo $interestperday;

在行动中看到它: https ://onlinephp.io/c/327a0

因为它在结果上返回一个字符串 run number_format (如果你最后运行它,你的结果可能会更精确)

$startdate = strtotime('2022-06-06');
$enddate = strtotime('2023-06-06');
$rate = 23.4;
$amount = 5798;
$days = (($enddate - $startdate) / 60 / 60 / 24);

$years = $days / 365;
$interest = $amount * ($rate) * $years / 100;
$interestperday = $interest / $days;
print(number_format($interestperday,2));


$currentdate = date('Y/m/d');
$datedifference = (int)((strtotime($currentdate) - $startdate) / 60 / 60 / 24);

$finalinterest = $datedifference * $interestperday;

$finalinterest = number_format($finalinterest,2);
print($finalinterest);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM