当前位置: 代码迷 >> java >> 找到 int 和 double 的最大值?
  详细解决方案

找到 int 和 double 的最大值?

热度:48   发布时间:2023-07-26 14:21:11.0

如何获得给定的 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;
  }
}

您可以使用和

例子:

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);
}

Java 会在需要时将int转换为double 另外,只需使用 Java 的Math.max()

如前所述,您可以在代码中使用 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);
}

这很简单。 我相信有人可能已经回答了,但这是相同的概念。

这里的最佳实践是使用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 方法。

首先,如果您只使用double类型的参数,Java 将自动执行从intdouble原始转换

其次,您确实可以使用Math.max比较两者,返回最高值。

但是,如果要比较的双精度数很多,则为每个比较编写Math.max会变得很麻烦。 在这种情况下,我建议使用流:

double[] numbers = ...;
double max = Arrays.stream(numbers)
    .max()
    .get(); 

注意:如果数组为空,这将引发异常。

  相关解决方案