我正在使用一些涉及浮点数和速率百分比的财务公式,并且我在尝试在我的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
答案 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的说法,它现在需要货币转换。