检查字符串是否为双精度值

php
2022-08-31 00:15:12

我正在尝试签入php,如果字符串是双精度的。

这是我的代码:

   if(floatval($num)){
         $this->print_half_star();
    }

$num是一个字符串。问题是,即使有一个int,它也给出了true。有没有办法检查它是否是浮点数而不是int!?


答案 1
// Try to convert the string to a float
$floatVal = floatval($num);
// If the parsing succeeded and the value is not equivalent to an int
if($floatVal && intval($floatVal) != $floatVal)
{
    // $num is a float
}

答案 2

这将省略表示为字符串的整数值:

if(is_numeric($num) && strpos($num, ".") !== false)
{
    $this->print_half_star();
}

推荐