根据以下链接http://www.tutorialspoint.com/java/lang/math_min_int.htm
在java中的Math.min()方法中,如果一个参数为正零而另一个为负零,则结果为负零。但是,当我尝试声明时
的System.out.println(Math.min(0,-O));
我得到了结果0(正零)。它应该是-0(负零)吗?如果没有,那么为什么呢?
答案 0 :(得分:5)
您链接的页面谈论了int
Math.min
版本的System.out.println(-0);
,但它讨论了几个仅浮点概念,包括无穷大,NaN和负零。这页面上的错误。
整数类型不区分正零和负零,因此即使您min
没有0
,它也会显示float
。浮点类型double
和f
确实具有单独的正负值。如果您为值添加d
或float
后缀,使其类型为double
或System.out.println(Math.min(0f, -0f));
,您将获得预期的负零结果:
{{1}}
如果查看真实文档,您会看到Math.min(int, int)
和Math.min(float, float)
之间的区别。