[英]Unable to understand output of Math.min(0,-0)
根据以下链接http://www.tutorialspoint.com/java/lang/math_min_int.htm
在Java中的Math.min()方法中,如果一个参数为正零,另一个为负零,则结果为负零。 但是当我尝试声明
System.out.println(Math.min(0,-0));
我得到的结果是0(正零)。 它不应该是-0(负零)吗? 如果没有,那为什么呢?
您链接的页面谈论Math.min
的int
版本,但谈论了几个仅浮点的概念,包括无穷大,NaN和负零。 该页面有误。
整数类型不能区分正零和负零,因此即使您执行System.out.println(-0);
如果没有min
,它将显示0
。 浮点类型float
和double
确实具有单独的正零和负零值。 如果将f
或d
后缀添加到值中,使它们的类型为float
或double
,则将得到期望的负零结果:
System.out.println(Math.min(0f, -0f));
如果查看真实文档,则会看到Math.min(int, int)
和Math.min(float, float)
之间的区别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.