array_sum()显示数学

时间:2018-02-13 20:02:15

标签: php

我正在尝试计算我从API中提取的数组的佣金数额。以下是我的代码。

$mst_per_off_base=   $pri['base']  * '.01'; // calculate 1% of the base price
$gr[] = $pri['com'] - $mst_per_off_base ; // deduct the 1% off of the com
echo array_sum($gr); // total of all after deduction

$pri['base']$pri['com']代表多个号码。问题在于它显示了数学。

例如,如果$ gr等于50.85则回显50.85101.7152.55我希望它只显示152.55。

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

尝试使用浮点数本地执行数学计算已经够糟糕了,它是双重的(双关语,哈哈,得到它?),不能将字符串交换到方程式中。

您需要PHP bcmath

特别关注bcmul()bcadd()

答案 1 :(得分:1)

以下是需要发生的事情的说明:

<?php

// suppose:
$pri['base'] = 30000;
$pri['com'] = 5000;

// then
$mst_per_off_base =   bcmul($pri['base'],.01); // calculate 1% of the base price
$gr[] = bcsub($pri['com'],$mst_per_off_base); // deduct the 1% off of the com
echo array_sum($gr); // total of all after deduction

我必须纠正OP代码。 “mst_per_off_base”需要加上美元符号。并且,这是一个减法的情况,因此请使用bcsub()而不是bcadd(除非您希望添加带正数的负数)。最后,将代码正确运行所必需的示例包括在内是非常重要的。所以,我自己定义$pri来构建理论范例。

请参阅live code

答案 2 :(得分:0)

@bamar是正确的我不小心将它嵌套在一个循环中。

感谢您提供有关正确数学方法的所有建议,我有一些阅读要做...