今天我正在开发一个PHP项目并遇到了这个代码行为
<?php
$x = 5.5;
$y = 0;
echo $z = floor($x * $y * -1);
?>
这给出了-0
的输出。
任何人都可以阐明为什么这会回应-0
。但我预计0
只有在添加楼层时才会出现这种情况。
我在java中尝试过相同的东西。
class Sample {
public static void main(String[] args) {
float x =5.5f;
int y = 0;
System.out.println(Math.floor(x*y*-1));
}
}
这也会打印-0.0
。
答案 0 :(得分:3)
LoginParam lp = new LoginParam("key","pwd");
LoginResponseParam lrp = port.login(lp);
和float
同时为正0和负0.当您多次使用0 * -1时,您将获得IEEE 754标准中指定的-0。
注意:1/0为正无穷大但1 / -0为负无穷大。
double
打印
System.out.println(0f * -1);
不需要Math.floor。
答案 1 :(得分:1)
因为PHP的floor()
返回一个浮点数(由于某种原因),并允许浮点数为负0。
这给出了正常的0:
$x = 5.5;
$y = 0;
echo $z = floor($x * $y * -1 * -1);