如何在PHP中计算支付网关

如何在PHP中计算支付网关,php,jquery,equation,calculation,Php,Jquery,Equation,Calculation,我正在将支付网关与我的PHP应用程序集成。在通过JavaScript或PHP解决一些基本的小等式时,我遇到了一个问题。实际上,我的支付网关从本金中提取一些百分比,因为它们有自己的规则 我希望金额被扣除,并添加到付款时,用户支付启动它。为了更清楚,下面是我的例子- 假设用户在支付网关以100美元的价格购买物品,他们的付款将按照以下公式计算:- var amount = '10352'; var percent = amount * '2.5' / '100'; var charge = perce

我正在将支付网关与我的PHP应用程序集成。在通过JavaScript或PHP解决一些基本的小等式时,我遇到了一个问题。实际上,我的支付网关从本金中提取一些百分比,因为它们有自己的规则

我希望金额被扣除,并添加到付款时,用户支付启动它。为了更清楚,下面是我的例子- 假设用户在支付网关以100美元的价格购买物品,他们的付款将按照以下公式计算:-

var amount = '10352';
var percent = amount * '2.5' / '100';
var charge = percent + parseFloat('5');
var TAX = charge * '18' / '100';
var totalcharge = charge + TAX;
var okAmount = parseFloat(amount) + parseFloat(totalcharge);
//output result is *10663.28* which is correct.
但是当我尝试做减法运算时,它并没有在PHP中显示正确的答案

$amount ="10663.28";
$percent = $amount * '2.5' / '100';
$charge = $percent + '5';
$GST = $charge * '18' / '100';
$totalcharge = $charge + $GST;
$totalAmount = $amount - $totalcharge;
but the answer is not == 10352 even I try my best to apply at the same formula.
请让我知道问题是什么,我可能做错了什么。我想知道的是我是如何在PHP中再次将
10663.28
转换为
10352

非常感谢你。注意:

我让它这样工作:

$amount = 10663.28;
$totalcharge = $amount * 0.0291921325550365;
$totalAmount = round($amount - $totalcharge,2);
//$totalAmount = 10352
$amount = 10352;
$percent = ($amount * 2.5) / 100;
$charge = $percent + 5;
$GST = ($charge * 18) / 100;
$totalcharge = $charge + $GST;
$totalAmount = $amount - $totalcharge;
这是一个纯粹的数学问题,你需要找出每笔交易的“总费用”的百分比是多少

将$totalAmount除以$totalcharge,得到0.0291921325550365

有了这个数字,您现在知道每个交易都有2.919213255%的收入

因此,10663.28*0.0291921325550365=311.284,即“总费用”

10663.28-311.284四舍五入等于10352

我还建议不要写带撇号的数字,因为它们不是字符串而是整数,并添加括号来分隔不同的计算,因此您的原始公式应该如下所示:

$amount = 10663.28;
$totalcharge = $amount * 0.0291921325550365;
$totalAmount = round($amount - $totalcharge,2);
//$totalAmount = 10352
$amount = 10352;
$percent = ($amount * 2.5) / 100;
$charge = $percent + 5;
$GST = ($charge * 18) / 100;
$totalcharge = $charge + $GST;
$totalAmount = $amount - $totalcharge;

我认为,基于当前的参数值,您将无法得到想要的结果。您需要更改任何参数的值,我通过更改GST的值得到了正确的结果

$('金额,'百分比,'费用,'消费税')。更改(函数(){
计算价格
});
$('#btnCalc')。单击(函数(){
计算价格
});
函数CalculatePrice(){
var$amount=$('#amount').val();
var$percent=parseFloat($amount)*$(“#percent_val”).val()/100;
var$charge=parseFloat($percent)+$(“#charge_val”).val();
var$GST=parseFloat($charge)*$(“#GST_val”).val()/100;
var$totalcharge=parseFloat($charge)+parseFloat($GST);
var$totalAmount=parseFloat($amount)-parseFloat($totalcharge);
$('#percent').val(parseFloat($percent).toFixed(2));
$('#charge').val(parseFloat($charge).toFixed(2));
$('#gst').val(parseFloat($gst).toFixed(2));
$('#totalcharge').val(parseFloat($totalcharge).toFixed(2));
$('#totalamount').val(parseFloat($amount-$totalcharge).toFixed(2));
}
CalculatePrice()

数量
百分比
冲锋
消费税
总费用
总金额
算计

我不太明白你想要什么?是要在后端php上应用相同的js计算吗?是的,但现在我想从输出答案中减去相同的公式,并从
10663.28
返回
10352
…是什么阻止你做减法?答案不来,即使我使用了你的代码,但答案是错误的-
$amount='10663.28'$百分比=($amount*2.5)/100$费用=$percent+5$商品及服务税=($charge*18)/100$总费用=$charge+$GST$totalAmount=数字\单位格式($amount-$totalcharge,2);echo$totalAmount//10342.81实际答案应该是10352
@ShubhamSingh我编辑了我的答案,因为有一个打字错误,在底部代码上,我只是对您的原始代码做了一些编辑。你感兴趣的是我写的第一段代码。只要把那段代码拿出来,它就会工作:$amount=10663.28$总费用=$amount*0.0291921325550365$totalAmount=整数($amount-$totalcharge,2);实验你的参数改变了一切,当我把GST改为14.6时,我得到了10352。试着把你的$amount=“10663.28”值上的撇号(')和引号(“)改为$amount=10663.28;