如何将销售价格四舍五入到第一个十进制数字



我正在使用Orion的woocommerce 3.5.3和Woocommerce所有折扣插件。在我应用折扣之后。价格看起来像这样: €59.90 -> €47.92,€69.90 -> €55.92。等。

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

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

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

如果我们把价格分成整数和分数,那么我们可以四舍五入分数并使用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

相关内容

  • 没有找到相关文章

最新更新