我正在寻找一个函数来测试整数是否是整数.到目前为止,我有这个:
if (is_numeric($answer3)) {
echo "Is triangular\n";
} else {
echo "Is not triangular\n";
}
Run Code Online (Sandbox Code Playgroud)
但是这总是返回"Is triangular",即使$ answer3是小数.
如何测试整数以查看它是否有小数?
Gal*_*len 16
考虑到浮点数是数字,is_numeric也会为浮点数返回true
查找给定变量是否为数字.数字字符串由可选符号,任意数量的数字,可选的小数部分和可选的指数部分组成.因此+ 0123.45e6是有效的数值.也允许使用十六进制表示法(0xFF),但只能使用符号,十进制和指数部分.
你可以试试is_float(),但是如果输入是一个字符串就不行.
var_dump( is_float( '23.5' ) ); // return false
Run Code Online (Sandbox Code Playgroud)
因此,如果您正在处理某个数字的字符串表示,那么只需查找一个 .
if ( strpos( $answer3, '.' ) === false )
Run Code Online (Sandbox Code Playgroud)
如果需要,可以添加is_numeric
// Make sure its numeric and has no decimal point
if ( is_numeric( $answer3 ) && strpos( $answer3, '.' ) === false )
Run Code Online (Sandbox Code Playgroud)
Ali*_*xel 13
应该10.0被视为整数还是浮点数?如果是整数,那么您正在寻找fmod():
if (fmod($number, 1) == 0) // $number DOES NOT have a significant decimal part
{
// is whole number
}
Run Code Online (Sandbox Code Playgroud)
否则,is_int()就够了.
编辑:检查无效小数部分的另一种方法是:
if (round($number, 0) == $number)
{
// is whole number
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19075 次 |
| 最近记录: |