PHP检查数字十进制是否大于.3

时间:2018-03-12 13:49:00

标签: php numbers int numeric

我使用以下内容确定某个值是否有小数。例如$val = 3.3;

if (is_numeric( $val ) && floor( $val ) != $val) {
    return true;
}

如何检查值的小数是否等于.3或更大?

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
}