繁体   English   中英

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

[英]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.minint版本,但谈论了几个仅浮点的概念,包括无穷大,NaN和负零。 该页面有误。

整数类型不能区分正零和负零,因此即使您执行System.out.println(-0); 如果没有min ,它将显示0 浮点类型floatdouble确实具有单独的正零和负零值。 如果将fd后缀添加到值中,使它们的类型为floatdouble ,则将得到期望的负零结果:

System.out.println(Math.min(0f, -0f));

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM