отредактированный
Извините, ребята, я хочу, чтобы PHP мод отображал десятичные дроби
В MySQL select mod(15.6,1)
результат 0.6
но в PHP 15.6 % 1
результат 0
?
Моя цель — ограничить вычисление только точным целым числом, которое не допускает десятичные дроби
В PHP %
Оператор модуля работает на целых числах. Операнды 15.6 и 1 приводятся к int (15 и 1) перед обработкой. Следовательно, 15% 1, как вы можете ожидать, дает 0. Поэтому «точное целое число, которое не допускает десятичные дроби» соответствует поведению в PHP.
В MySQL, как сказано в документации:
MOD () также работает со значениями, которые имеют дробную часть и возвращает точный остаток после деления
Следовательно, вы должны TRUNCATE (операнд, 0) операндов, прежде чем использовать их в MySQL для получения целочисленного поведения. Это согласуется с поведением PHP приведения к целым числам — числа обрезаются, а не разбиваются (что является существенной разницей с отрицательными числами).
Других решений пока нет …