Java Math.min函数的完整指南

1,045 阅读2分钟

**Java Math.min()**方法比较两个数字(可以是int、float、double或long类型)并返回两个数字的最小值。

Java Math.min

Java Math.min是一个内置函数,用于返回两个数字的最小值 。参数以int、float、 double和long为单位 ,如果传递的两个参数都是负数,那么就会生成一个幅度较大的数字作为结果。

语法

public static int min(int a, int b)
public static double min(double a, double b)
public static float min(float a, float b)
public static long min(long a, long b)

参数

要确定最小值的两个数字。

返回值

两个参数的最小值。

见下图。

Java Math min()

注意

  1. 如果一个参数是正的,另一个是负的,那么返回负的参数。
  2. 如果两个参数都是负数,则返回幅度较大的那个参数。
  3. 如果一个参数是正0,而另一个是负0,那么就返回负0。这是因为min()方法认为负零严格小于正零(与数字比较运算符不同)。
  4. 如果任一参数是NaN,那么结果就是NaN

考虑一下下面的例子

比较两个int、float、doublelong值,以及与负无穷的比较

请看下面的代码:

public class Example1 {
  public static void main(String[] args) {
    int i1 = 2;
    int i2 = 3;

    float f1 = 2.0f;
    float f2 = 3.0f;

    double d1 = 2.0;
    double d2 = 3.0;

    long l1 = 2000000;
    long l2 = 3000000;

    System.out.println(Math.min(i1, i2));
    System.out.println(Math.min(f1, f2));
    System.out.println(Math.min(d1, d2));
    System.out.println(Math.min(l1, l2));

    System.out.println(Math.min(-3.0, -3.0 / 0));
  }
}

输出

->javac Example1.java
->java Example1
2
2.0
2.0
2000000
-Infinity

比较一个正参数和一个负参数

public class Example2 {
  public static void main(String[] args) {
    int a = 34;
    int b = -45;

    System.out.println(Math.min(a, b));
  }
}

輸出

->javac Example2.java
->java Example2
-45

比较两个负数参数

public class Example3 {
  public static void main(String[] args) {
    int a = -34;
    int b = -45;

    System.out.println(Math.min(a, b));
  }
}

輸出

->javac Example3.java
->java Example3
-45

Example4.java:下面的例子演示了比较正零和负零

public class Example4 {
  public static void main(String[] args) {
    float a = -0.0f;
    float b = 0.0f;

    System.out.println(Math.min(a, b));
  }
}

输出

->javac Example4.java
->java Example4
-0.0

传递一个NaN参数

public class Example5 {
  public static void main(String[] args) {
    float a = 2f;
    System.out.println(Math.min(a, 2.0 % 0));
  }
}

输出

->javac Example5.java
->java Example5
NaN

本教程到此为止。

请参见

Java Math.max

Java Math.floor

Java Math.abs

Java Math.copySign

Java Math.nextUp