表示PHP中的费率计算的百分比金额

时间:2014-03-19 21:13:52

标签: php

我正在使用一些涉及浮点数和速率百分比的财务公式,并且我在尝试在我的PHP代码中表示这些值时遇到一些问题。我应该使用BC Math吗?我应该将所有百分比除以100吗?您如何在PHP中表示以下公式?

例如:金额的税率为8%,每天的利率为1%。鉴于我想借用X金额并在15天内付款,分为3期,每期分期和总回报金额是多少?

totalTax = amount * 0.08
totalAmount = (amount + totalTax)
interest = totalAmount * 0.01 * 15
perInstallment = totalAmount + totalInterest / 3

2 个答案:

答案 0 :(得分:1)

关键的PHP函数是number_format()。我也在我的自定义函数中将类型转换为(float)。一如既往,测试此代码。如果你发现任何边缘情况,这个数学与你的财务计算不同步,我很好奇。它通过了我的考试......

function formatCurrency($input){
    $result = number_format((float)$input, 2, '.', ',');
    return $result;
}

$amount = 6458.56;
$totalTax = $amount * 0.08;
$totalAmount = $amount + $totalTax;
$interest = $totalAmount * 0.01 * 15;
$perInstallment = ($totalAmount + $interest) / 3;

echo 'Principal = $'.formatCurrency($amount).'<br/>';
echo 'Total Tax = $'.formatCurrency($totalTax).'<br/>';
echo 'Total Amount = $'.formatCurrency($totalAmount).'<br/>';
echo 'Total Interest = $'.formatCurrency($interest).'<br/>';
echo 'Each Installment = $'.formatCurrency($perInstallment).'<br/>';

答案 1 :(得分:0)

关注您的财务运作:15天,每天1% 是 15%但是16.1%。更好地使用pow()函数而不是乘法运算符。

在PHP中(例如,在命令行中运行):

<?
$amount         = 1000.0 ;
$tax            = 1.08 ;  // 8%
$interestPerDay = 1.01 ;  // 1%/day
$days           = 15 ;

$totalAmount    = ($amount * $tax);
$totalAmountWithInterest = $totalAmount * pow($interestPerDay, $days) ;
$perInstallment = $totalAmountWithInterest / 3;

printf("Initial amout:   %.2f\n", $amount);
printf("Amount tax inc.: %.2f\n", $totalAmount);
printf("Total amount:    %.2f\n", $totalAmountWithInterest);
printf("Total interest:  %.2f\n", $totalAmountWithInterest - $amount);
printf("Per installment: %.2f\n", $perInstallment );    

给出:

Initial amout:   1000.00
Amount tax inc.: 1080.00
Total amount:    1253.85
Total interest:  253.85
Per installment: 417.95

根据@larsAnders的说法,它现在需要货币转换。