我有一个浮点数,它是来自cURL调用的返回数据,我希望乘以0.25%(收费)然后求和(将费用加到小计)
代码:
var_dump(var_dump($obook['Bid']);
echo number_format(($obook['Bid'] *= 0.0025) + $obook['Bid'], 8););
输出:
float(0.01191616)
0.00005958
我可以获得百分比金额,但不能将其添加到小计中。
如何计算费用和总和,浮动?
即。 0.01191616 * 0.0025 = $ fee
$ fee + 0.01191616 = $ new_grand_total
更新: 这是不正确的:
$commis = $obook['Bid'] *= 0.0025;
var_dump(number_format($commis, 8));
输出:
string(10) "0.00002976"
答案 0 :(得分:1)
$obook['Bid'] *= 0.0025
表示将变量乘以0.0025
,然后将结果放回$obook['Bid']
。然后,当您向其添加$obook['Bid']
时,您只是将结果加倍。
换句话说,您的代码相当于:
$obook['Bid'] = $obook['Bid'] * 0.0025;
echo number_format(2 * $obook['Bid'], 8);
因此,您将失去$obook['Bid']
的原始价值,仅用费用替换它,然后将费用添加到自身。
如果您不想更新变量,则应使用*
,而不是*=
。
$new_grand_total = $obook['Bid'] * 0.0025 + $obook['Bid'];
你也可以使用高中代数来实现x * y + x
等同于x * (1+y)
,所以你可以这样做:
$new_grand_total = $obook['bid'] * 1.0025;
答案 1 :(得分:0)
改为:
$obook['bid'] *= 1.0025