Php 当0.00是可接受的值时,检查执行字符串到浮点转换时是否有错误

Php 当0.00是可接受的值时,检查执行字符串到浮点转换时是否有错误,php,string,null,double,Php,String,Null,Double,我目前正在寻找一种最优雅的方法,对字符串到浮点的转换进行错误检查,0.00应该是一个可接受的值,但非数字字符将导致紧急情况。 目前,我正在考虑测试字符串中除“、“/”或“[0-9]”以外的任何其他字符。我只是想知道,是否有更优雅/更短的方式。 先谢谢你,奥利弗 PHP有一个内置函数 是\u float() 示例: is_float(27.25);//这是真的 是浮点数('abc');//这将是错误的我想您正在寻找的是是数值的() 看到它在这里工作了吗?rtm,is_numeric(),也就是_

我目前正在寻找一种最优雅的方法,对字符串到浮点的转换进行错误检查,0.00应该是一个可接受的值,但非数字字符将导致紧急情况。 目前,我正在考虑测试字符串中除“、“/”或“[0-9]”以外的任何其他字符。我只是想知道,是否有更优雅/更短的方式。
先谢谢你,奥利弗

PHP有一个内置函数

是\u float()

示例:

is_float(27.25);//这是真的


是浮点数('abc');//这将是错误的

我想您正在寻找的是
是数值的()


看到它在这里工作了吗?

rtm,is_numeric(),也就是_float(),目前我正在考虑测试字符串中除“、“/”或“[0-9]”以外的任何字符,这意味着应该接受千位分隔符或非en格式的数字?在这种情况下,
是_float()
(或者实际上
是_numeric()
)实际上会失败,比如
100000.27
100.000,27
-如果是这种情况,您可能需要检查
NumberFormatter
类3不是浮点,并且该函数将失败。使用is\u numeric()他的问题是要检查某个东西是否是浮点数,而不是某个东西是否是数字
实际上是不正确的,因为它会接受非浮点数。显然,如果他也想接受非浮点数,那么它是正确的,但这不是他要求的。是的,但首先要做的是。他正在进行字符串到浮点数的转换。首先要做的是验证字符串是否为数字。Again,is_float()本身将失败。这将是一种浪费。
is_float()
会检查字符串是否为数字,但带有小数点。在这之前使用
is_numeric
将是无意义的。$string='45';echo is_float($string)?'yes':'no'//输出:no
$x = 5.345;
$y = '0.00';
$z = 'abc123';

echo is_numeric($x)."1\n";
echo is_numeric($y)."2\n";
echo is_numeric($z)."3\n";