我想检查天气给定的数字是否为小数,如果是小数,则应返回小数,否则应返回整数。
我从互联网上尝试了很多解决方案,但在某些条件下失败了,请帮助我实现这个目标。
如果也是这种格式,它应该返回 decimal 10.00, 10.0 ,99.000 .
$value=$request->amount;//99.99,99.00...
if(gettype($value)){
if(decimal){
//My logic goes here.
}
if(integer){
//My logic
}
}
这就是你想要的:
$value=$request->amount;
if(fmod($value, 1) !== 0.00){
//It is decimal, so the decimal logic goes here.
} else {
// It is an Intereger, so the ineteger logic goes here.
}
fmod(x,y) 是一个 PHP 函数,返回 x/y 的余数。
只需设置 y=1,只有当 x/1 的余数等于 0.00 时,数字(这里是 x)才是整数。
例如:
fmod(10.05,1) 的输出是 0.05,所以它是十进制的 fmod(5,1) 的输出是 0,所以它是一个整数
如果您想了解更多关于fmod函数的信息,请访问fmod函数说明
注意:您甚至可以将字符串传递给 fmod 函数,它会自动更改为数字。
例如:
fmod('34.04',1) 的输出是 0.04,并且是十进制
if(strpos($price,'.') === false)
{
echo 'Not a decimal'
}