Получение модуля работает только с целыми значениями.
Операнды автоматически кастуются в int.
Под капотом php делает примерно так: (int)2.999 % (int)0.0001
В итоге получается: 2 % 0
О чем PHP Вас и информирует
Пишет что где-то деление на ноль. Наверно после точки много нулей. Слишком малое число. И вроде % значит найти остаток при делении. И лучше скинь сам код