java-试图了解此代码行为

今天我在一个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是负无穷大.

您可以看到http://ideone.com/tBd41l

System.out.println(0f * -1);

版画

-0.0

不需要Math.floor.

上一篇:为什么在MYSQL查询中出现多行?


下一篇:PAT A1008 Elevator