我正在使用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