Jer*_*rub 13 php floating-point
在PHP中,NAN比较假到0,"0",false,array(),array(1),NAN,null基本上所有其他类变量,我可以辨别.
但NAN == true回报true.为什么要NAN == true回来true?
在PHP中,与之$x == true相同$x? true : false.也就是说,比较等于true用==,而不是===意味着$x将评估为true在布尔上下文.
如果NAN要在布尔上下文中求值为false,NAN == false则将其计算为true.
小智 6
NAN(相当NAN或信令NAN)是非零浮点值. *这就是为什么*
sqrt(-1.0) -> NAN
Run Code Online (Sandbox Code Playgroud)
有-NAN和+ NAN虽然大约有80286,但它通常在测试中被认为是NAN.
如果需要,请检查FPU浮点指令集.
+ INF和-INF也是非零浮点值:
- log(0.0) -> +INF
log(0.0) -> -INF
Run Code Online (Sandbox Code Playgroud)
这是英特尔浮点堆栈的转储.我只列出我正在讨论的几个值:(不要忘记,在内部,FPU是10个字节):
<exp> <mantissa>
0.0 00 00 00 00 00 00 00 00 00 00
-INF FF FF 80 00 00 00 00 00 00 00
+INF 7F FF 80 00 00 00 00 00 00 00
-NAN FF FF C0 00 00 00 00 00 00 00
+NAN 7F FF C0 00 00 00 00 00 00 00
Run Code Online (Sandbox Code Playgroud)
所以你可以看到,只有0.0是零!