在我的商店中,我正在使用此代码对优惠券中的小数点进行四舍五入。 是否可以将数字从99.555舍入到99.9? 我只需要一个小数点。
/**
* Round off decimals for coupons
**/
function filter_woocommerce_coupon_get_discount_amount( $discount, $discounting_amount, $cart_item, $single, $instance ) {
$discount = ceil( $discount );
return $discount;
}
add_filter( 'woocommerce_coupon_get_discount_amount', 'filter_woocommerce_coupon_get_discount_amount', 10, 5 );
答案 0 :(得分:1)
您可以使用PHP round函数(而不是ceil
),该函数具有一个$precision
参数,您可以将其设置为1
。这将舍入到9.555
的壁橱精度为9.6
:
/**
* Round off decimals for coupons
**/
function filter_woocommerce_coupon_get_discount_amount( $discount,
$discounting_amount, $cart_item, $single, $instance ) {
$discount = round( $discount, 1 );
return $discount;
}
add_filter( 'woocommerce_coupon_get_discount_amount',
'filter_woocommerce_coupon_get_discount_amount', 10, 5 );
如果要将9.555
转换为9.9
,则必须创建该逻辑,例如:
/**
* Round off decimals for coupons
**/
function filter_woocommerce_coupon_get_discount_amount( $discount,
$discounting_amount, $cart_item, $single, $instance ) {
$disvount_floor = floor($discount);
// This will return x.99 if $discount decimal number is > 0.5
if (fmod($discount, $disvount_floor) > 0.5) {
return "{$disvount_floor}.9";
}
return $discount;
}
add_filter( 'woocommerce_coupon_get_discount_amount',
'filter_woocommerce_coupon_get_discount_amount', 10, 5 );