我想将这些类型的值“3”、“2.34”、“0.234343”等转换为数字。在JavaScript中,我们可以使用Number(),但在PHP中有没有类似的方法?
Input Output
'2' 2
'2.34' 2.34
'0.3454545' 0.3454545
我想将这些类型的值“3”、“2.34”、“0.234343”等转换为数字。在JavaScript中,我们可以使用Number(),但在PHP中有没有类似的方法?
Input Output
'2' 2
'2.34' 2.34
'0.3454545' 0.3454545
当前回答
您可以使用:
(int)(your value);
或者您可以使用:
intval(string)
其他回答
仅将数字乘以1,以便将字符串转换为类型number。
//String value
$string = "5.1"
if(is_numeric($string)){
$numeric_string = $string*1;
}
在某些情况下,只需注意一些有用且安全的答案。您可能需要先检查字符串是否包含有效的数值,然后才能将其转换为数值类型(例如,如果您必须处理来自将int转换为字符串的数据库的数据)。可以使用is_numeric(),然后使用floatval():
$a = "whatever"; // any variable
if (is_numeric($a))
var_dump(floatval($a)); // type is float
else
var_dump($a); // any type
是的,PHP中有一个类似的方法,但它鲜为人知,所以你很少听说它。它是一个叫做“身份”的算术运算符,如下所述:
算术运算符
要将数字字符串转换为数字,请执行以下操作:
$a = +$a;
所有建议都会丢失数字类型。
在我看来,这是一个最佳实践:
function str2num($s){
// Returns a num or FALSE
$return_value = !is_numeric($s) ? false : (intval($s)==floatval($s)) ? intval($s) :floatval($s);
print "\nret=$return_value type=".gettype($return_value)."\n";
}
//Get Only number from string
$string = "123 Hello Zahid";
$res = preg_replace("/[^0-9]/", "", $string);
echo $res."<br>";
//Result 123