Предупреждение: 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?