今天我在一个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.
解决方法:
float和double都有一个正0和一个负0.当您乘以0 * -1时,将得到IEEE 754标准中指定的-0.
注意:1/0是正无穷大,而1 / -0是负无穷大.
System.out.println(0f * -1);
版画
-0.0
不需要Math.floor.