比较Java中的无穷大

Don*_*onX 10 java

以下表达式在Java中返回什么?

Math.max(Float.POSITIVE_INFINITY, Double.POSITIVE_INFINITY);
Run Code Online (Sandbox Code Playgroud)

我在网站上看到了这个问题,答案是Double.POSITIVE_INFINITY.我不确定这个答案,我们如何比较2个无穷大?有人可以澄清一下吗?谢谢.

sv_*_*_in 26

Float.POSITIVE_INFINITY返回float,Double.POSITIVE_INFINITY返回double.

没有名为Math.max的方法(float,double).只有Math.max(float,float)和Math.max(double,double)

因此,当该方法被称为Math.max(float,double)时,它将float参数转换为double,因此调用Math.max(double,double),以便返回Double.POSITIVE_INFINITY.

Java不会从double转换为float,因为它可能导致精度问题.