Предупреждение: Division by Zero Работа с PHP и MySQL

Я делаю вычисление с массивом, который извлекается из mysql, и проблема заключается в предупреждении "деление на ноль"

Я запускаю цикл над этим статусом

$v = (($v - $valuei)/($valuei) * 100); 

Здесь $v изменяется (скажем, от 100 до 150, например 100, 101, 102, 103,..., 150), а $valuei - это значение $v (т.е. 100). Итак, когда вычисление начнет первый вывод, должен быть равен нулю, и я хочу, чтобы это было нулевым, то почему оно дает предупреждение "Отделить к нулю", а также делает все значения "$ v" равными нулю.

Ответ 1

Предупреждение подсказывает, что $valuei на самом деле равен 0 во время одного из прогонов.

Вы уверены, что $valuei инициализируется правильно? Чтобы избавиться от предупреждения, вы должны добавить do:

if($valuei != 0) {
    $v = (($v - $valuei)/($valuei) * '100');
}

Таким образом, предупреждение должно исчезнуть.

Ответ 2

Если $valuei изначально установлено на $v, то на первой итерации (x - x) = 0 и, следовательно, вы делите на ноль (или, скорее, пытаетесь делить 0 на что-то, что является ошибкой).

Не видя остальную часть цикла, я могу только догадываться, но я подозреваю, что направление, по которому вы, вероятно, начинаете, должно начинать цикл с индекса "1" вместо "0".

Кроме того, зачем умножать на 100 вместо 100?