检查数字是否为十进制例子:解释:
如果用户输入了十进制数,我需要签入PHP(美国方式,小数点:X.XXX)
有什么可靠的方法可以做到这一点吗?
如果用户输入了十进制数,我需要签入PHP(美国方式,小数点:X.XXX)
有什么可靠的方法可以做到这一点吗?
你可以从is_float那里得到你想要的大部分东西,但如果你真的需要知道它是否有小数,那么你上面的函数并不是很远(尽管语言错误):
function is_decimal( $val )
{
return is_numeric( $val ) && floor( $val ) != $val;
}
如果你想“10.00”返回真正的检查夜猫子的答案
如果您想知道小数是否有值,则可以使用此答案。
适用于所有类型的类型(整型、浮点型、字符串)
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 文档:
在处理之前,模数的操作数被转换为整数(通过去除小数部分)。
这将有效地破坏op目的,在javascript等其他语言中,您可以使用modulus运算符