我正在将Payment Gateway与我的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
。非常感谢。注意:This is not my question and it already applied by me
我让它那样工作:
$amount = 10663.28;
$totalcharge = $amount * 0.0291921325550365;
$totalAmount = round($amount - $totalcharge,2);
//$totalAmount = 10352
这是一个纯粹的数学问题,您需要找出每笔交易收取的“总费用”的百分比。
将$ totalAmount除以$ totalcharge,您将得到0.0291921325550365。
有了这个数字,您现在知道从每笔交易中都提取了2.919213255%。
因此,10663.28 * 0.0291921325550365 = 311.284,即“总费用”。
和10663.28-311.284舍入等于10352。
我也建议不要用撇号写数字,因为它们不是字符串,而是整数,并加上括号以分隔不同的计算,因此原始公式应如下所示:
$amount = 10352;
$percent = ($amount * 2.5) / 100;
$charge = $percent + 5;
$GST = ($charge * 18) / 100;
$totalcharge = $charge + $GST;
$totalAmount = $amount - $totalcharge;
我认为您将无法根据当前参数值得到想要的东西。您需要更改任何参数的值,通过更改GST的值,我得到了正确的结果;
$('#amount, #percent_val, #charge_val, #gst_val').change(function(){
CalculatePrice()
});
$('#btnCalc').click(function(){
CalculatePrice()
});
function 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()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td>Amount</td>
<td></td>
<td><input id="amount" type="number" value="10663.28"></td>
</tr>
<tr>
<td>Percent</td>
<td><input id="percent_val" type="number" value="2.5"></td>
<td><input id="percent" readonly type="number"></td>
</tr>
<tr>
<td>Charge</td>
<td><input id="charge_val" type="number" value="5"></td>
<td><input id="charge" readonly type="number"></td>
</tr>
<tr>
<td>GST</td>
<td><input id="gst_val" type="number" value="16.765"></td>
<td><input id="gst" readonly type="number"></td>
</tr>
<tr>
<td>Total Charge</td>
<td></td>
<td><input id="totalcharge" readonly type="number"></td>
</tr>
<tr>
<td>Total Amount</td>
<td></td>
<td><input id="totalamount" readonly type="number"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><button id="btnCalc">Calculate</button></td>
</tr>
<table>
尝试播放您的参数以获得所需的结果。