PHP中NaN的概念是什么?在何时何地使用它,为什么有用?
下面的功能是做什么用的?而且,我需要下面的代码解释。
<?php echo is_nan(200) . "<br>"; echo is_nan(acos(1.01)); ?>
答案 0 :(得分:1)
NaN的意思是“不是数字”。我们基本上将虚数(例如:复数)称为 NaN ,例如:-1的平方根( i ),acos(1.01)
。这些数字无法计算/计算。
nan /“不是数字”并不意味着要查看数据类型是否为 数字/文字/等。
NaN实际上是一组可以存储在浮点中的值 变量,但实际上没有求出适当的浮点数 数字。
浮点系统分为三个部分:1位用于符号 (+/-),8位指数和23位小数部分。有 规则,规定可以将哪些值组合放入每个 部分,并为数字(例如无穷大)保留了一些值。 这导致某些组合无效,换句话说, 不是数字。
通过is_nan()
函数的documentation:
bool is_nan ( float $val )
详细信息::检查val是否为“非数字”,例如acos(1.01)的结果。
返回,如果val为“非数字”则为TRUE,否则为FALSE。
因此,基本上,此函数用于检查数学函数和运算的返回值的有效性,并期望将float作为参数。
现在, 200 是有效数字。因此,is_nan(200)
将返回False
。
与此同时,acos(1.01)
试图找到 1.01 的反余弦。从数学上,我们非常了解余弦函数返回的值在 -1 到 +1 范围内。因此不能存在1.01(大于1)的值。因此,无法确定acos(1.01)
。因此,它不是有效数字。因此,is_nan(acos(1.01))
将返回True
。