Я делаю вычисление с массивом, который извлекается из mysql, и проблема – это «деление на ноль» предупреждение
Я запускаю цикл над этим статусом
$v = (($v - $valuei)/($valuei) * 100);
Здесь $ v изменяется (скажем, от 100 до 150, например 100, 101, 102, 103, …, 150), а $ valuei – это значение $ v (т.е. 100). Итак, когда сначала начнется вычисление выход должен быть нулевым, и я хочу, чтобы нуль, то почему он дает предупреждение «Подразделение по нолю», а также делает все значения «$ v» равными нулю.
Предупреждение подсказывает, что $ valuei, по сути, 0 во время одного из прогонов.
Вы уверены, что $ valuei инициализируется правильно? Чтобы избавиться от предупреждения, вы должны добавить do:
if($valuei != 0) { $v = (($v - $valuei)/($valuei) * '100'); }
Таким образом, предупреждение должно исчезнуть.
Если $valuei
изначально устанавливается в $v
то на первой итерации (x - x) = 0
и, следовательно, вы делите на ноль (или, скорее, пытаетесь делить 0 на что-то , что является ошибкой).
Не видя остальной части цикла, я могу только догадываться, но я подозреваю, что направление, по которому вы, вероятно, хотите, – это запустить цикл с индексом «1» вместо «0».
Кроме того, зачем умножать на 100 вместо 100?