我使用以下内容确定某个值是否有小数。例如$val = 3.3;
if (is_numeric( $val ) && floor( $val ) != $val) {
return true;
}
如何检查值的小数是否等于.3或更大?
答案 0 :(得分:4)
您可以从floor($val)
中减去$val
以获得$val
的小数值。例如:
if( $val - floor($val) >= 0.3 ) {
return true;
}
请注意,如果$val
为否定,则无法使用,您可以abs
使用它:
if( abs($val) - floor(abs($val)) >= 0.3 ) {}
或类似的东西:
// if the negative number should be greater than 0.3
if( $val - floor($val) >= 0.3 && abs($val) - floor(abs($val)) >= 0.3 ) {}
// if the negative number should be less than 0.3
if( $val - floor($val) >= 0.3 && abs($val) - floor(abs($val)) <= 0.3 ) {}
答案 1 :(得分:1)
Ty this:
function fractionalPartOfDoubleVal($doub){
// $doub = +1.4;
// $whole = floor($doub);
if ($doub > 0){
$whole = floor($doub);
} else {
$whole = ceil($doub);
}
$fractionalPart = $doub - $whole;
if ($fractionalPart > 0.3){
// further processing
}
return abs($fractionalPart);
}
$posFractionalPart = fractionalPartOfDoubleVal(2.7);
echo ($posFractionalPart);
$negFractionalPart = fractionalPartOfDoubleVal(-2.7);
echo ($negFractionalPart);
答案 2 :(得分:0)
您可以获取浮点数的整数部分,并从原始数据中减去它:
$value = 3.3;
$integer = floor($value); // 3
$decimal = $value - $integer; //0.3
if($decimal >= 0.3){ //true
//your stuff
}