Как округлить цену продажи до первой десятичной цифры? - PullRequest
0 голосов
/ 09 января 2019

Я использую woocommerce 3.5.3 и плагин Woocommerce All Discounts от Orion. После того, как я применяю скидки. Цены выглядят так: € 59,90 -> € 47,92, € 69,90 -> € 55,92. и т.д.

Как мне округлить его до первой десятичной цифры?

Я уже пробовал несколько решений, но ни одно из них не работает. Например:

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

1 Ответ

0 голосов
/ 09 января 2019

Если мы разделим цену на целые и дробные части, то мы можем округлить дроби и использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...