php - 为什么 is_numeric(NAN) 返回 TRUE?

标签 php nan

我测试了PHP中NAN常量中的is_numeric函数和给定的结果

is_numeric(NAN); // TRUE

但 NAN 的意思是“不是数字”。为什么函数 is_numeric 返回 true

我知道 NAN 是 float 类型。但是在测试下面两种情况时,结果是不同的:

is_float(NAN) // true
filter_var(NAN, FILTER_VALIDATE_FLOAT)// false

为什么会发生?

对不起,我的英语不好

最佳答案

NAN 是一个特殊的常量。它必须包含一些值,所以它包含一个float datatype

var_dump(NAN); // float(NAN);

问题是 filter_var 不是在比较数据类型,而是在寻找数字,NAN is not .

Some numeric operations can result in a value represented by the constant NAN. This result represents an undefined or unrepresentable value in floating-point calculations. Any loose or strict comparisons of this value against any other value, including itself, will have a result of FALSE.

Because NAN represents any number of different values, NAN should not be compared to other values, including itself, and instead should be checked for using is_nan().

关于php - 为什么 is_numeric(NAN) 返回 TRUE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554990/

相关文章:

php - 如何在CodeIgniter中为403禁止的错误设置自定义页面

php - 如何在 Laravel 模型中使用特征?

php - 如何测试空记录集

javascript - 我的 React Typescript 获胜百分比计数器中出现逻辑 NaN 错误

javascript - 使用 jquery CounterUp 给出 NaN 的百万值

floating-point - Fortran 中具有 NaN 值的参数(常量)变量

python - 来自 Dataframes Dict 的 Pandas 面板返回 NaN

PHP 警告 : No such file or directory in Unknown on line 0

Web 服务器上的 PHP Websocket

Java:找不到符号