听起来很简单,我知道。我真的被难住了。
这里有两个制作了这个简单计算器的网站:
http://thefeecalculator.com
http://ppcalc.com
我需要在我的PHP应用程序中计算这些贝宝的费用。
这是我得到的,说我们想要30美元的“甚至”会员费。这是我用来计算我们应该收取多少钱来弥补它的函数,使用PayPal的计算(也在上面的两个网站上描述):交易的2.9% +0.30美元。
function memfees()
{
$calc = round((30 * .029) + 30 + .30,2);
return $calc;
}在这里测试:如你所见,http://matt.mw/junk/php/memfees.php显示为31.17。其他两个网站都说应该是31.20。如果我尝试130.00美元,我的计算为134.07美元,他们两个的计算为134.19美元。
我做错了什么?
为什么我要使用一个圆形函数?百分比会导致一些小数超过百分位,如果小数后面有两位以上的数字,则PayPal会生成错误。我认为人们通常会把钱收起来(例如31.6342美元就是31.63美元),但如果是这样的话,我在函数中做错了什么呢?如果有大笔付款,那么减少的金额会更多。这让我相信百分比部分有问题。
你能在这方面提供一些帮助吗?
谢谢您抽时间见我。
发布于 2012-05-16 15:03:17
你的函数看起来确实很奇怪。为了细分,PayPal收取固定利率的$.30,并增加2.9%的交易百分比手续费。
其公式是将$.30相加,然后除以百分比差异(100% - 2.9%),这将得到PayPal实际减少之前的数量。
function memfees($amount)
{
$amount += .30;
return $amount / (1 - .029);
}您可以根据自己的意愿对其进行舍入和浮动。
发布于 2012-05-16 15:02:19
因为你想错了。
你不收30美元,你收31.20美元。Paypal从中扣除交易费(2.9%),然后从结果中提取0.30美元:
$31.20
* 0.971 (1 - 2.9%)
------
$30.2952
- $00.30
------
$29.9952所以你必须颠倒这个过程,即在你的总数上加上$0.3,然后除以0.971。
发布于 2012-10-15 07:47:03
这里有一个很好的数学解释来解释这是如何工作的。我们有这个号码,x,我们想把它记在信用卡上。我们不知道这个数字是多少,但我们知道,当我们减去30美分,再减去x的2.9%,得到y,这是我们带回家的钱的数量:
y = x - x * .029 - .3我们知道y,因为我们知道我们想要带回家的数量。比方说,我们想带回家100美元,然后y=100。但是x是什么呢?
y = x - x * .029 - .3
y + .3 = x - x * .029
= x(1 - .029)
(y + .3) / (1 - .029) = x
x = (y + .3) / .971注意:因为x - x * .029可以被写成x * 1 - x * .029,所以所有需要做的就是使用分布式属性,我们提出了x(1 - .029)
所以我们想出了这个公式:
x = (y + .3) / .971它定义了这个臭名昭著的数字x。同时,它回答了我们的问题:我应该收取多少金额才能支付交易费,而又不低于我们想要带回家的金额?好的,我们需要做的就是填入带回家的金额,即y:
x = (100 + .3) / .971
x = ~103.30我希望这有助于澄清。
https://stackoverflow.com/questions/10613385
复制相似问题