is_numeric错误地标识了一个float(这是一个随机字符串)

时间:2012-04-19 13:21:56

标签: php floating-point numeric scientific-notation

我正在寻找一个变量中的数字,如果没有找到我引用字符串 - 否则它是不加引号的。例如:

$x = '000916846E38516';
if (is_numeric($x)) { echo 'Numeric!'; } else { echo 'Non-numeric!'; }

恰好该字符串是科学记​​数法,PHP将其识别为数字。我应该如何解决这个问题?只是检查是否有更好的字母字符,还是有另一个类似于is_numeric的函数会排除科学数字?

1 个答案:

答案 0 :(得分:4)

is_int()ctype_digit()应该都适合您。

filter_var()可能更好,因为你可以设置标志来验证浮点数(FILTER_VALIDATE_FLOAT)和整数(FILTER_VALIDATE_INT