问题描述
如何获得给定的 int 和 double 值的最大值?
package _pasted_code_;
import java.util.Scanner;
public class extra {
public static void main(String[] args) {
double x = 2.0;
double y = 3.0;
double z = 5.67;
int a = 3;
int b = 9;
double answer = max(x, y);
System.out.println("The largest number is: " + answer);
double answer = max(x, y, z);
int max = max(a, b);
}
public static double max(double num1, double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
public static int max (int x, int y) {
if (x > y)
return x;
else
return y;
}
public static double max(double num1, double num2, double num3) {
if ((num1 > num2) && (num1 > num3))
return num1;
else
return num2;
else
return num3;
}
}
1楼
您可以使用和
例子:
public static int max(int x, int y) {
return Math.max(x, y);
}
public static double max(double num1, double num2) {
return Math.max(num1, num2);
}
public static double max(double num1, double num2, double num3) {
return Math.max(Math.max(num1, num2), num3);
}
2楼
Java 会在需要时将int
转换为double
。
另外,只需使用 Java 的Math.max()
。
3楼
如前所述,您可以在代码中使用 Math.max 方法来接收最大数字。 与 Math.min(x,y) 相同。 它们的工作方式相同。
因此,让我们简单地说一下。
public static double max(double num1, double num2)
{
return Math.Max(num1, num2);
}
还
public static int max (int x, int y)
{
return Math.max(x,y);
}
这很简单。 我相信有人可能已经回答了,但这是相同的概念。
4楼
这里的最佳实践是使用method overloading
(假设您不想使用 Java 自己的 max/min 方法)。
任何方法都有自己的签名,并且它们通过签名唯一标识。
所以,我会推荐的是定义方法如下:
public static int max(int x, int y) {
// your implementation
}
public static double max(double x, double y) {
// your implementation
}
但请记住,最好使用 Java 的 min、max 方法。
5楼
首先,如果您只使用double
类型的参数,Java 将自动执行从int
到double
的原始转换。
其次,您确实可以使用Math.max
比较两者,返回最高值。
但是,如果要比较的双精度数很多,则为每个比较编写Math.max
会变得很麻烦。
在这种情况下,我建议使用流:
double[] numbers = ...;
double max = Arrays.stream(numbers)
.max()
.get();
注意:如果数组为空,这将引发异常。