Предупреждение: деление на ноль работает на PHP и MySQL

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

Я бегу петлю над этим уставом

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

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

2 ответа

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам