если вы хотите, чтобы "10.00" вернул true, проверьте ответ Night Owl
Если вы хотите узнать, имеет ли десятичное число значение, вы можете использовать этот ответ.
Работает со всеми видами типов (int, float, string)
if(fmod($val, 1) !== 0.00){
// your code if its decimals has a value
} else {
// your code if the decimals are .00, or is an integer
}
Примеры:
(fmod(1.00, 1) !== 0.00) // returns false
(fmod(2, 1) !== 0.00) // returns false
(fmod(3.01, 1) !== 0.00) // returns true
(fmod(4.33333, 1) !== 0.00) // returns true
(fmod(5.00000, 1) !== 0.00) // returns false
(fmod('6.50', 1) !== 0.00) // returns true
Объяснение:
fmod
возвращает остаток с плавающей запятой (по модулю) от деления аргументов (отсюда (! == 0,00))
оператор модуля - почему бы не использовать оператор модуля?Например, ($val % 1 != 0)
Из документов PHP :
Операнды модуля перед обработкой преобразуются в целые числа (путем удаления десятичной части).
Это эффективно разрушает операционные цели, в других языках, таких как javascript, вы можете использовать оператор модуля