使用PHP将价格降至10美分

时间:2013-02-15 09:28:38

标签: php magento

我有以下代码将Magento产品舍入到最近的$ x.90,$ x.80,$ x.85等,但输入是手动的。我需要的是一个新功能,只需按一下按钮就可以将价格调到最近的10美分。因此,如果价格是11,87美元,我需要它是11,90美元,如果价格是11,63美元,我需要它是11,60美元。

我该怎么做?

protected function _round($price, $roundTo = 0.00, $type = 'normal')
{
    $roundTo = ltrim(number_format($roundTo, 2, '.', ''), '0');

    if ($type === 'normal') {
        return round($price);
    }

    $safety = 99999999;

    if ($type === 'up' || ($type === 'down' && $roundTo < $price)) {
        while(substr($price, -(strlen($roundTo))) != $roundTo) {

            if ($type === 'up') {
                $price += .01;
            }
            else {
                $price -= .01;
            }

            $price = number_format($price, 2, '.', '');

            if (--$safety < 1) {
                throw new Exception('Error');
            }
        }

        return $price;
    }

    return false;
}   

1 个答案:

答案 0 :(得分:1)

这个小功能可行。

function roundPrice($price){
    $rounded = round($price, 1);
    return number_format($rounded, 2);
}

$newprice = roundPrice($InputYourValueHere);

// Output the value for the purposes of the example
echo $newprice;