3

我的支付系统从每笔交易中收取 0.5%。我的账户上有 0.9 美元,非常少。当我尝试通过 API 提取 0.9 美元时,它会出现错误,它需要 0.0045 美元作为费用并四舍五入为 0.91 美元。所以我只能提取0.89美元并支付0.00445美元的费用,四舍五入到1美分清空我的账户;

我不明白附加费用是按哪个公式四舍五入的=(

php round(0.9+0.9*0.005,2) 

返回 0.9$,如何获得 0.91$?

编辑: ceil 适用于这个特定的金额,但在实践中,当我只提取 1 美分时,佣金,即 0.00005 不知何故不算作 0.01,看起来除了 ceil() 之外,仅包括点后的前两个零。嗯..

细胞((0.01 * 0.005)* 100)/ 100;给 1 美分,但实际上 api 取零。

4

2 回答 2

6

怎么用ceil

$number = 0.9*0.005;
$number = ceil(100*$number) / 100; // rounds fee up to nearest cent
$number = $number + 0.9;
echo round($number,2);
于 2013-07-23T14:19:44.013 回答
0

不要在 ceil 函数内进行乘法运算!你会得到浮点错误,它可能是非常不可预测的。为避免这种情况,请执行以下操作:

function ceiling($value, $precision = 0) {
    $offset = 0.5;
    if ($precision !== 0)
        $offset /= pow(10, $precision);
    return round($value + $offset, $precision, PHP_ROUND_HALF_DOWN);
}

例如ceiling(2.2200001, 2)会给2.23.

于 2016-11-01T20:33:48.853 回答