[Помогите] Division by zero

Тема в разделе "OpenCart", создана пользователем CrazYViruS, 6 апр 2014.

  1. CrazYViruS

    CrazYViruS

    Регистрация:
    30 май 2013
    Сообщения:
    146
    Симпатии:
    80
    Всем доброго времени, возникла ошибка с делением на ноль.
    Суть: Необходимо на некоторые позиции товара указать 0 цену, вроде как все нормально но в двиг встроен модулец и он очень нужен, который высчитывает процент скидки с цены.

    Вот проблемный код
    PHP:
    'percent'      => round((($result['price'] - $result['special'])/$result['price'])*1000),
    Как его можно изменить чтобы он обходил ошибку с делением и при этомже работал нормально на те товары в которых есть цена ?
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    перед массивом:
    PHP:
    if (empty($result['price'])) {
        
    $percent 0;
    } else {
        
    $percent round((($result['price'] - $result['special'])/$result['price'])*1000);
    }
    и потом:
    PHP:
    'percent' => $percent
     
    CrazYViruS нравится это.
  3. CrazYViruS

    CrazYViruS

    Регистрация:
    30 май 2013
    Сообщения:
    146
    Симпатии:
    80
    =\ всеравно возвращает с тойже ошибкой на
    PHP:
    $percent round((($result['price'] - $result['special'])/$result['price'])*1000);
     
  4. Jnorf

    Jnorf

    Регистрация:
    30 дек 2013
    Сообщения:
    31
    Симпатии:
    10
    а так:
    'percent' => round((($result['price'] - $result['special'])/(($result['price'])+0.0001))*100, 0);
    :biggrin:
     
    CrazYViruS нравится это.
  5. CrazYViruS

    CrazYViruS

    Регистрация:
    30 май 2013
    Сообщения:
    146
    Симпатии:
    80
    Работает ! Благодарю !

    PHP:
    'percent' => round((($result['price'] - $result['special'])/(($result['price'])+0.0001))*1000),