如何将销售价格四舍五入到第一个小数位数?

时间:2019-01-09 19:57:27

标签: php wordpress woocommerce

我正在使用Orion的woocommerce 3.5.3和Woocommerce All Discounts插件。 我申请折扣后。价格如下:€59.90->€47.92, €69.90->€55.92。等

如何将其舍入到第一个十进制数字?

我已经尝试了一些解决方案,但没有任何效果。例如:

function round_price_product( $price ){
    // Return rounded price
    return round( $price );
}

1 个答案:

答案 0 :(得分:0)

如果我们将价格分为整数和小数,则可以四舍五入并使用str_pad来确保我们不会丢失数字(47.9而不是47.90)

由于我们将分数除以10,所以我们得到了一个新的分数,可以将其舍入为零精度。 然后将其乘以10,使其恢复为原来的状态。

function round_price_product( $price ){
    // Return rounded price
    $parts = explode(".", $price);
    $parts[1] = round($parts[1]/10,0)*10;
    if($parts[1] == 100) { // round up to next integer
        $parts[0]++;
        $parts[1] = 0;
    }
    return $parts[0] . "." . str_pad($parts[1], 2, 0, STR_PAD_RIGHT);
}

echo round_price_product("47.92"); //47.90
// 47.95 -> 48.00
// 47.02 -> 47.00

https://3v4l.org/92sO1