我正在使用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 );
}
答案 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