Java. Клас Math. Функції округлення

Клас Math. Функції округлення

Перед вивченням даної теми рекомендується ознайомитись з наступними темами:


Зміст


Пошук на інших ресурсах:

1. Перелік функцій округлення

Крім тригонометричних та експоненційних функцій клас Math містить функції для виконання різних операцій округлення. Нижче наведено перелік цих функцій

  • abs() – повертає абсолютне значення аргументу;
  • ceil() – найменше ціле, яке більше або рівне вказаному аргументу;
  • floor() – найбільше ціле, яке менше або рівне вказаному аргументу;
  • floorDiv() – повертає результат цілочисельного ділення двох цілих чисел;
  • floorMod() – отримати найменшу цілу остачу від ділення двох цілих чисел;
  • max() – повертає більше з двох значень;
  • min() – повертає менше з двох значень;
  • nextAfter() – отримати наступне значення аргументу в заданому напрямку;
  • nextDown() – отримати наступне значення, яке є меншим від значення аргументу;
  • nextUp() – отримати наступне значення від аргументу в позитивному напрямку;
  • rint() – отримати найближче ціле значення до вказаного аргументу;
  • round() – отримати аргумент, округлений до найближчого цілого значення;
  • ulp() – отримати кількість одиниць в останньому знаку для вказаного аргументу.

 

2. Функція abs(). Отримати абсолютне значення вказаного аргументу

З допомогою функції abs() можна отримати абсолютне значення аргументу. Загальна форма оголошення функції для базових числових типів наступна:

static int abs(int value);
static long abs(long value);
static float abs(float value);
static double abs(double value);

тут

  • value – значення одного з примітивних числових типів.

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція abs() - модуль числа
    int a = -8;
    double x = -2.432;
    float f = -1.43f;

    int aa = Math.abs(a);
    System.out.println("aa = " + aa);

    double xx;
    xx = Math.abs(x);
    System.out.println("xx = " + xx);

    float ff = Math.abs(f);
      System.out.println("ff = " + ff);
  }
}

Результат

aa = 8
xx = 2.432
ff = 1.43

 

3. Функція ceil(). Найменше ціле, яке більше або рівне заданого аргументу

Загальна форма оголошення функції:

static double ceil(double value);

тут

  • value – аргумент, з якого потрібно отримати ціле значення.

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція ceil() - найближче ціле типу double, яке більше рівне аргументу
    double x = -7.65;
    double xx;
    xx = Math.ceil(x); // xx = -7.0
    System.out.println("xx = " + xx);

    float f = 11.43f; // ff = 12.0
    float ff = (float)Math.ceil((double)f);
    System.out.println("ff = " + ff);
  }
}

Результат

xx = -7.0
ff = 12.0

 

4. Функція floor(). Найбільше ціле, яке менше або рівне заданого аргументу

Загальна форма оголошення функції:

static double floor(double value);

тут

  • value – аргумент, з якого отримується найближче ціле типу double.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція floor()
    // 1. Для типу float
    float f1 = 2.83f;
    float resF = (float)Math.floor((double)f1);
    System.out.println("floor(2.83) = " + resF);

    // 2. Для типу double
    double d1 = -7.75;
    double resD = (double)Math.floor(d1);
    System.out.println("floor(-7.75) = " + resD);
  }
}

Результат

floor(2.83) = 2.0
floor(-7.75) = -8.0

 

5. Функція floorDiv(). Результат цілочисельного ділення двох цілих чисел

Загальна форма оголошення функції для типів int та long наступна:

static int floorDiv(int divisible, int divider);
static int floorDiv(long divisible, long divider);

тут

  • divisible – значення, яке ділиться (ділене, делимое);
  • divider – дільник (делитель) – значення, на яке ділиться число.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція floorDiv()
    // 1. Для типу int
    int resInt = Math.floorDiv(117, 20);
    System.out.println("117/20 = " + resInt);

    // 2. Для типу long
    long resLong = Math.floorDiv(2300L, 83L);
    System.out.println("2300/83 = " + resLong);
  }
}

Результат

117/20 = 5
2300/83 = 27

 

6. Функція floorMod(). Найменша ціла остача від ділення двох цілих чисел

Функція floorMod() повертає найменшу остачу від ділення двох цілих чисел. Загальна форма оголошення функції:

static int floorMod(int divisible, int divider);
static int floorMod(long divisible, long divider);

тут

  • divisible – значення, яке ділиться (ділене, делимое);
  • divider – дільник (делитель) – значення, на яке ділиться число.

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція floorMod()
    // 1. Для типу int
    int i1 = 23;
    int i2 = 11;
    int resI = Math.floorMod(i1, i2);
    System.out.println("230/11 = " + resI);

    // 2. Для типу long
    long l1 = 100L;
    long l2 = 9L;
    System.out.println("100L / 9 = " + Math.floorMod(l1, l2));
  }
}

Результат

230/11 = 1
100L / 9 = 1

 

7. Функція max(). Визначення більшого з двох значень

Функція max() повертає максимальне з двох заданих значень. Загальна форма оголошення функції для примітивних числових типів наступна:

static int max(int x, int y);
static long max(long x, long y);
static float max(float x, float y);
static double max(double x, double y);

тут

  • x, y – значення, з яких визначається найбільше.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція max() - максимальне з двох чисел
    // 1. Для типу int
    int i1 = 35;
    int i2 = 110;
    int maxInt = Math.max(i1, i2);
    System.out.println("max(35, 110) = " + maxInt);

    // 2. Для типу double
    System.out.println("max(2.88, 3.11) = " + Math.max(2.88, 3.11));
  }
}

Результат

max(35, 110) = 110
max(2.88, 3.11) = 3.11

 

8. Функція min(). Визначення меншого з двох значень

Функція min() повертає найменше з двох заданих значень. Згідно з документацією оголошення функції для примітивних числових типів має вигляд:

static int min(int x, int y);
static long min(long x, long y);
static float min(float x, float y);
static double min(double x, double y);

тут

  • x, y – значення, з яких визначається найменше.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція min() - мінімальне з двох чисел
    // 1. Для типу long
    long i1 = 35;
    long i2 = 110;
    long minInt = Math.min(i1, i2);
    System.out.println("min(35, 110) = " + minInt);

    // 2. Для типу float
    System.out.println("min(2.88, 3.11) = " + Math.min(2.88, 3.11));
  }
}

Результат

min(35, 110) = 35
min(2.88, 3.11) = 2.88

 

9. Функція nextAfter(). Отримати наступне значення аргументу в заданому напрямку

З допомогою функції nextAfter() можна отримати наступне значення аргументу в заданому напрямку для чисел з плаваючою комою. Згідно з документацією оголошення функції наступне:

static double nextAfter(double start, double direction);
static float nextAfter(float start, double direction);

тут

  • start – початкове значення, з якого задається напрямок;
  • direction – число, що визначає напрямок зміни початкового значення.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція nextAfter() - отримати значення аргументу в заданому напрямку
    // 1. Для типу double
    double start1 = 35.2;
    double direction1 = 1.5;
    double resD = Math.nextAfter(start1, direction1);
    System.out.println("nextAfter(35.2, 1.5) = " + resD);

    // 2. Для типу float
    float start2 = -18.3f;
    float direction2 = -2.4f;
    float resF = Math.nextAfter(start2, direction2);
    System.out.println("nextAfter(-18.3, -2.4) = " + resF);
  }
}

Результат

nextAfter(35.2, 1.5) = 35.199999999999996
nextAfter(-18.3, -2.4) = -18.299997

 

10. Функція nextDown(). Отримати наступне значення, яке є меншим від значення аргументу

З допомогою функції nextDown() можна отримати найближче наступне значення, яке є меншим від значення аргументу. Згідно з документацією оголошення функції наступне:

static float nextDown(float val);
static double nextDown(double val);

тут

  • val – значення, відносно якого отримується попереднє значення.

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція nextDown() - отримати наступне значення аргументу в напрямку спадання
    // 1. Для типу double
    double value = 35.2;
    double resD = Math.nextDown(value);
    System.out.println("nextDown(35.2) = " + resD);

    // 2. Для типу float
    float value2 = 8.3f;
    System.out.println("nextDown(8.3f) = " + Math.nextDown(value2));
  }
}

Результат

nextDown(35.2) = 35.199999999999996
nextDown(8.3f) = 8.299999

 

11. Функція nextUp(). Отримати наступне значення від аргументу в напрямку зростання

Згідно з документацією оголошення функції наступне:

static float nextUp(float val);
static double nextUp(double val);

тут

  • val – значення, відносно якого отримується наступне значення.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція nextUp() - отримати наступне значення аргументу в напрямку зростання
    // 1. Для типу double
    double value = 35.2;
    double resD = Math.nextUp(value);
    System.out.println("nextUp(35.2) = " + resD);

    // 2. Для типу float
    float value2 = 8.3f;
    System.out.println("nextUp(8.3f) = " + Math.nextUp(value2));
  }
}

Результат

nextUp(35.2) = 35.20000000000001
nextUp(8.3f) = 8.300001

 

12. Функція rint(). Отримати найближче ціле значення до вказаного аргументу

Згідно з документацією оголошення функції наступне:

static double rint(double arg);

тут

  • arg – вихідний аргумент.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція rint() - отримати найближче ціле значення до вказаного аргументу

    // 1. Додатнє число
    double arg = 5.2;
    double res = Math.rint(arg);
    System.out.println("rint(5.2) = " + res);

    // 2. Від'ємне число
    arg = -7.65;
    res = Math.rint(arg);
    System.out.println("rint(-7.65) = " + res);
  }
}

Результат

rint(5.2) = 5.0
rint(-7.65) = -8.0

 

13. Функція round(). Отримати аргумент, округлений до найближчого цілого значення

Згідно з документацією оголошення функції наступне:

static long round(double arg);

тут

  • arg – вихідний аргумент.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція round() - отримати аргумент, округлений до найближчого цілого значення

    // 1. Додатнє число
    double arg = 5.6;
    double res = Math.round(arg);
    System.out.println("round(5.6) = " + res);

    res = Math.round(5.2);
    System.out.println("round(5.2) = " + res);

    // 2. Від'ємне число
    arg = -7.65;
    res = Math.round(arg);
    System.out.println("round(-7.65) = " + res);

    res = Math.round(-7.15);
    System.out.println("round(-7.15) = " + res);
  }
}

Результат

round(5.6) = 6.0
round(5.2) = 5.0
round(-7.65) = -8.0
round(-7.15) = -7.0

 

14. Функція ulp(). Отримати кількість одиниць в останньому знаку для вказаного аргументу

Згідно з документацією оголошення функції наступне:

static float ulp(float arg);
static double ulp(double arg);

тут

  • arg – вихідний аргумент.

 

Приклад.

public class MathFunctions {

  public static void main(String[] args) {
    // Функція ulp() - отримати кількість одиниць
    //                 в останньому знаку для вказаного аргументу

    // 1. Для типу double
    double argD = 5.618;
    double resD = Math.ulp(argD);
    System.out.println("ulp(5.618) = " + resD);
    System.out.println("ulp(-2.3) = " + Math.ulp(-2.3));

    // 2. Для типу float
    float argF = 5.618f;
    float resF = Math.ulp(argF);
    System.out.println("ulp(5.618f) = " + resF);
    System.out.println("ulp(-2.3f) = " + Math.ulp(-2.3f));
  }
}

Результат

ulp(5.618) = 8.881784197001252E-16
ulp(-2.3) = 4.440892098500626E-16
ulp(5.618f) = 4.7683716E-7
ulp(-2.3f) = 2.3841858E-7

 


Споріднені теми