无法理解Math.min的输出(0,-0)

时间:2014-06-01 14:49:30

标签: java min

根据以下链接http://www.tutorialspoint.com/java/lang/math_min_int.htm

在java中的Math.min()方法中,如果一个参数为正零而另一个为负零,则结果为负零。但是,当我尝试声明时 的System.out.println(Math.min(0,-O));
我得到了结果0(正零)。它应该是-0(负零)吗?如果没有,那么为什么呢?

1 个答案:

答案 0 :(得分:5)

您链接的页面谈论了int Math.min版本的System.out.println(-0);,但它讨论了几个仅浮点概念,包括无穷大,NaN和负零。这页面上的错误。

整数类型不区分正零和负零,因此即使您min没有0,它也会显示float。浮点类型doublef确实具有单独的正负值。如果您为值添加dfloat后缀,使其类型为doubleSystem.out.println(Math.min(0f, -0f)); ,您将获得预期的负零结果:

{{1}}

如果查看真实文档,您会看到Math.min(int, int)Math.min(float, float)之间的区别。