Модуль значений в PHP возвращает целые числа?


Как я могу получить остаток от деления (операция модуль %) десятичных знаков при использовании сплиттер, или дивидендов float?

Например:

echo 5 % 3; // imprime 2 como é esperado
echo 5.6 % 3; // imprime 2 quando deveria imprimir 2.6
Author: Maniero, 2013-12-20

3 answers

Существует возможность использовать функцию fmod (на английском языке), которая является подходящей для этого. Я не знаю, если даст результат, который вы ожидаете, но, на мой быстрый тест ок.

, То вы бы:

echo fmod( 5.6, 3.0 );

Это будет печатать 2.6.

См работает ideone и PHP Sandbox. И я Github для справки.

 17
Author: Maniero, 2020-09-01 13:59:50

Оператор Модуля, server только для целых чисел, для такого использования, можно использовать функцию fmod PHP:

fmod(5.6, 3); // imprime 2.6

Если просто использовать оператор Модуля (%), полученное значение будет Наибольшее Целое число, Меньшее, чем результат.

 8
Author: hernandev, 2014-01-13 16:18:03

Этот оператор работает только с целыми числами

Имеет комментарий в этом link lembando это.

Обратите Внимание, что оператор % (по модулю) работает только с целыми числами (между -214748348 и до 2 147 483 647)...

Попробуйте использовать fmod()

 5
Author: Guilherme, 2013-12-20 12:29:43