Деление на ноль - PullRequest
       44

Деление на ноль

0 голосов
/ 19 сентября 2018

У меня есть расчет в процентах, но если нет данных, я получаю следующее сообщение об ошибке:

Division by zero

расчет

$ratio = ($postup*100)/($postup + $postdown);

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Вы можете справиться с этим, как показано ниже, чтобы избавиться от ошибки:

$ratio = 0;
$dividedBy = $postup + $postdown;

if($dividedBy != 0) {
    $ratio = ($postup * 100) / $dividedBy;
    echo $ratio;
} else {
    echo "Can not divide by zero!!";
}
0 голосов
/ 19 сентября 2018

Отклонение от нуля равно не определено .

Если оба значения $postup и $postdown равны null (не установлены), вы получите деление на ноль, т.е. null + null == 0.

Кроме того, такая же проблема возникнет, если $postup * -1 == $postdown.

Поскольку деление на ноль не определено, вам необходимо добавить запасной вариант для этого.

Что бы этот запасной вариант был быbe является специфичным для приложения, но будет выглядеть примерно так:

$ratio = null;

if($postup + $postdown == 0) {
    $ratio = xxx;
} else {
    $ratio = ($postup*100)/($postup + $postdown);
}

Пожалуйста, имейте в виду, что $postup * 100 будет равен 0, если $postup == null

...