我想将这些类型的值“3”、“2.34”、“0.234343”等转换为数字。在JavaScript中,我们可以使用Number(),但在PHP中有没有类似的方法?

Input             Output
'2'               2
'2.34'            2.34
'0.3454545'       0.3454545

当前回答

仅将数字乘以1,以便将字符串转换为类型number。

//String value
$string = "5.1"
if(is_numeric($string)){
  $numeric_string = $string*1;
}

其他回答

有几种方法可以做到这一点:

将字符串强制转换为数字基元数据类型:$num=(int)“10”;$num=(double)“10.12”;//与(浮动)“10.12”相同;对字符串执行数学运算:$num=“10”+1;$num=地板(“10.1”);使用intval()或floatval():$num=intval(“10”);$num=浮动值(“10.1”);使用settype()。

派对迟到了,但这里有另一种方法:

function cast_to_number($input) {
    if(is_float($input) || is_int($input)) {
        return $input;
    }
    if(!is_string($input)) {
        return false;
    }
    if(preg_match('/^-?\d+$/', $input)) {
        return intval($input);
    }
    if(preg_match('/^-?\d+\.\d+$/', $input)) {
        return floatval($input);
    }
    return false;
}

cast_to_number('123.45');       // (float) 123.45
cast_to_number('-123.45');      // (float) -123.45
cast_to_number('123');          // (int) 123
cast_to_number('-123');         // (int) -123
cast_to_number('foo 123 bar');  // false

实现这一目标的多种方式之一是:

$fileDownloadCount          =  (int) column_data_from_db;
$fileDownloadCount++;

第二行将值递增1。

//Get Only number from string
$string = "123 Hello Zahid";
$res = preg_replace("/[^0-9]/", "", $string);
echo $res."<br>";
//Result 123

在PHP中,您可以使用intval(string)或floatval(字符串)函数将字符串转换为数字。