在Java中,以下表达式返回什么?
Math.max(Float.POSITIVE_INFINITY, Double.POSITIVE_INFINITY);
我在一个网站上看到了这个问题,答案是Double.POSITIVE_INFINITY
。 我对这个答案不确定,因为我们如何比较两个无限大?有人能解释一下吗?谢谢。
在Java中,以下表达式返回什么?
Math.max(Float.POSITIVE_INFINITY, Double.POSITIVE_INFINITY);
我在一个网站上看到了这个问题,答案是Double.POSITIVE_INFINITY
。 我对这个答案不确定,因为我们如何比较两个无限大?有人能解释一下吗?谢谢。
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类型,因为这可能会导致精度问题。
double
可表示的任何数字都要大的“特殊数字样东西”,对吧? - Display Name
Math.min()
也会返回Double.POSITIVE_INFINITY
;) - dimo414