Gac*_*cek 5 php floating-point
在PHP中,让我们创建一个变量并将其值设置为0:
$x = 0;
echo $x;
Run Code Online (Sandbox Code Playgroud)
它会显示出来0.如果有人将乘以-1:
$x = -1 * $x;
echo $x;
Run Code Online (Sandbox Code Playgroud)
我们仍然看到0.但如果$x是浮动:
$x = 0;
$x = (float)$x;
$x = -1 * $x;
echo $x;
Run Code Online (Sandbox Code Playgroud)
我们得到输出:-0.
这是为什么?不管零的类型是什么,不应该始终显示为无符号?
因为 PHP 通常使用IEEE 754 双精度格式来表示浮点数,其中包括:
1)符号(1位)
2)指数(11位)
3)分数(52位)
如果将 $x 乘以 -1,则符号位被设置。
整数使用两个补码,其中最高有效位 (MSB) 确定符号。如果乘以 0,则 MSB 为 0。
请参阅: https: //en.wikipedia.org/wiki/Signed_zero
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |