13.11. Java – Метод Math.round()
Метод Math.round() – возвращает целое число, long или int, ближайшее к вещественному числу, double или float, аргумента. Иными словами – округляет дробь до целого числа.
Синтаксис
Метод имеет следующие варианты округления до целого числа:
long round(double d) int round(float f)
Параметры
Подробная информация о параметрах:
- d – double или float примитивный тип данных.
- f – тип данных float.
Возвращаемое значение
- В Java Math.round() возвращает целое число (long или int), ближайшее к вещественному числу, double или float, аргумента.
Пример
public class Test< public static void main(String args[])< double d1 = 1.49; double d2 = 1.50; double d3 = 1.75; double d4 = -1.49; double d5 = -1.50; double d6 = -1.75; float f1 = 10; float f2 = 9f; float f3 = -10; float f4 = -9f; System.out.println("d1 = " + Math.round(d1)); System.out.println("d2 = " + Math.round(d2)); System.out.println("d3 = " + Math.round(d3)); System.out.println("d4 = " + Math.round(d4)); System.out.println("d5 = " + Math.round(d5)); System.out.println("d6 = " + Math.round(d6)); System.out.println("-----------"); System.out.println("f1 = " + Math.round(f1)); System.out.println("f2 = " + Math.round(f2)); System.out.println("f3 = " + Math.round(f3)); System.out.println("f4 dos">d1 = 1 d2 = 2 d3 = 2 d4 = -1 d5 = -1 d6 = -2 ----------- f1 = 10 f2 = 9 f3 = -10 f4 = -9
Оглавление
- 1. Java – Самоучитель для начинающих
- 2. Java – Обзор языка
- 3. Java – Установка и настройка
- 4. Java – Синтаксис
- 5. Java – Классы и объекты
- 6. Java – Конструкторы
- 7. Java – Типы данных и литералы
- 8. Java – Типы переменных
- 9. Java – Модификаторы
- 10. Java – Операторы
- 11. Java – Циклы и операторы цикла
- 11.1. Java – Цикл while
- 11.2. Java – Цикл for
- 11.3. Java – Улучшенный цикл for
- 11.4. Java – Цикл do..while
- 11.5. Java – Оператор break
- 11.6. Java – Оператор continue
- 12. Java – Операторы принятия решений
- 12.1. Java – Оператор if
- 12.2. Java – Оператор if..else
- 12.3. Java – Вложенный оператор if
- 12.4. Java – Оператор switch..case
- 12.5. Java – Условный оператор (? 🙂
- 13. Java – Числа
- 13.1. Java – Методы byteValue(), shortValue(), intValue(), longValue(), floatValue(), doubleValue()
- 13.2. Java – Метод compareTo()
- 13.3. Java – Метод equals()
- 13.4. Java – Метод valueOf()
- 13.5. Java – Метод toString()
- 13.6. Java – Метод parseInt()
- 13.7. Java – Метод Math.abs()
- 13.8. Java – Метод Math.ceil()
- 13.9. Java – Метод Math.floor()
- 13.10. Java – Метод Math.rint()
- 13.11. Java – Метод Math.round()
- 13.12. Java – Метод Math.min()
- 13.13. Java – Метод Math.max()
- 13.14. Java – Метод Math.exp()
- 13.15. Java – Метод Math.log()
- 13.16. Java – Метод Math.pow()
- 13.17. Java – Метод Math.sqrt()
- 13.18. Java – Метод Math.sin()
- 13.19. Java – Метод Math.cos()
- 13.20. Java – Метод Math.tan()
- 13.21. Java – Метод Math.asin()
- 13.22. Java – Метод Math.acos()
- 13.23. Java – Метод Math.atan()
- 13.24. Java – Метод Math.atan2()
- 13.25. Java – Метод Math.toDegrees()
- 13.26. Java – Метод Math.toRadians()
- 13.27. Java – Метод Math.random()
- 14. Java – Символы
- 14.1. Java – Метод Character.isLetter()
- 14.2. Java – Метод Character.isDigit()
- 14.3. Java – Метод Character.isWhitespace()
- 14.4. Java – Метод Character.isUpperCase()
- 14.5. Java – Метод Character.isLowerCase()
- 14.6. Java – Метод Character.toUpperCase()
- 14.7. Java – Метод Character.toLowerCase()
- 14.8. Java – Метод Character.toString()
- 15. Java – Строки
- 15.1. Java – Метод charAt()
- 15.2. Java – Метод compareTo()
- 15.3. Java – Метод compareToIgnoreCase()
- 15.4. Java – Метод concat()
- 15.5. Java – Метод contentEquals()
- 15.6. Java – Метод copyValueOf()
- 15.7. Java – Метод endsWith()
- 15.8. Java – Метод equals()
- 15.9. Java – Метод equalsIgnoreCase()
- 15.10. Java – Метод getBytes()
- 15.11. Java – Метод getChars()
- 15.12. Java – Метод hashCode()
- 15.13. Java – Метод indexOf()
- 15.14. Java – Метод intern()
- 15.15. Java – Метод lastIndexOf()
- 15.16. Java – Метод length()
- 15.17. Java – Метод matches()
- 15.18. Java – Метод regionMatches()
- 15.19. Java – Метод replace()
- 15.20. Java – Метод replaceAll()
- 15.21. Java – Метод replaceFirst()
- 15.22. Java – Метод split()
- 15.23. Java – Метод startsWith()
- 15.24. Java – Метод subSequence()
- 15.25. Java – Метод substring()
- 15.26. Java – Метод toCharArray()
- 15.27. Java – Метод toLowerCase()
- 15.28. Java – Метод toString()
- 15.29. Java – Метод toUpperCase()
- 15.30. Java – Метод trim()
- 15.31. Java – Метод valueOf()
- 15.32. Java – Классы StringBuilder и StringBuffer
- 15.32.1. Java – Метод append()
- 15.32.2. Java – Метод reverse()
- 15.32.3. Java – Метод delete()
- 15.32.4. Java – Метод insert()
- 15.32.5. Java – Метод replace()
- 16. Java – Массивы
- 17. Java – Дата и время
- 18. Java – Регулярные выражения
- 19. Java – Методы
- 20. Java – Потоки ввода/вывода, файлы и каталоги
- 20.1. Java – Класс ByteArrayInputStream
- 20.2. Java – Класс DataInputStream
- 20.3. Java – Класс ByteArrayOutputStream
- 20.4. Java – Класс DataOutputStream
- 20.5. Java – Класс File
- 20.6. Java – Класс FileReader
- 20.7. Java – Класс FileWriter
- 21. Java – Исключения
- 21.1. Java – Встроенные исключения
- 22. Java – Вложенные и внутренние классы
- 23. Java – Наследование
- 24. Java – Переопределение
- 25. Java – Полиморфизм
- 26. Java – Абстракция
- 27. Java – Инкапсуляция
- 28. Java – Интерфейсы
- 29. Java – Пакеты
- 30. Java – Структуры данных
- 30.1. Java – Интерфейс Enumeration
- 30.2. Java – Класс BitSet
- 30.3. Java – Класс Vector
- 30.4. Java – Класс Stack
- 30.5. Java – Класс Dictionary
- 30.6. Java – Класс Hashtable
- 30.7. Java – Класс Properties
- 31. Java – Коллекции
- 31.1. Java – Интерфейс Collection
- 31.2. Java – Интерфейс List
- 31.3. Java – Интерфейс Set
- 31.4. Java – Интерфейс SortedSet
- 31.5. Java – Интерфейс Map
- 31.6. Java – Интерфейс Map.Entry
- 31.7. Java – Интерфейс SortedMap
- 31.8. Java – Класс LinkedList
- 31.9. Java – Класс ArrayList
- 31.10. Java – Класс HashSet
- 31.11. Java – Класс LinkedHashSet
- 31.12. Java – Класс TreeSet
- 31.13. Java – Класс HashMap
- 31.14. Java – Класс TreeMap
- 31.15. Java – Класс WeakHashMap
- 31.16. Java – Класс LinkedHashMap
- 31.17. Java – Класс IdentityHashMap
- 31.18. Java – Алгоритмы Collection
- 31.19. Java – Iterator и ListIterator
- 31.20. Java – Comparator
- 32. Java – Дженерики
- 33. Java – Сериализация
- 34. Java – Сеть
- 34.1. Java – Обработка URL
- 35. Java – Отправка Email
- 36. Java – Многопоточность
- 36.1. Java – Синхронизация потоков
- 36.2. Java – Межпоточная связь
- 36.3. Java – Взаимная блокировка потоков
- 36.4. Java – Управление потоками
- 37. Java – Основы работы с апплетами
- 38. Java – Javadoc
Округление чисел в Java

В пакете java.lang есть класс Math , а в этом классе есть 3 метода округления чисел с плавающей точкой до ближайшего целого числа:

Названия методов от английских слов:
round — от англ. «округлять»
floor — от англ. «пол»
ceiling — от англ. «потолок»

Давайте рассмотрим на примере как работают эти методы:
Пример №1
class Test < public static void main ( String [ ] args ) < float num = 5.25f ; System . out . println ( Math . round ( num ) ) ; System . out . println ( Math . floor ( num ) ) ; System . out . println ( Math . ceil ( num ) ) ;
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите:
Комментарии:
1. Math.round () — данный метод округляет до ближайшего целого числа .
И действительно, на входе было 5.25, а метод нам вернул число 5, поскольку ближайшее целое число — это 5. Если бы, например, мы этим методом округляли число 8.75, то мы бы получили 9, потому что это ближайшее целое число.
Также обратите внимание, что данный метод возвращает значение типа int, то есть целое число. На входе было число 5.25, а метод вернул нам не 5.0, а 5
2. Math.floor () — данный метод округляет число до ближайшего целого вниз.
И действительно, у нас было число 5.25, ближайшее число вниз — это 5.0 А если бы мы, например, округляли с помощью этого метода число 8.75, то получили бы число 8.0, потому что ближайшее целое число вниз — это 8.0.
Теперь Вы понимаете почему метод называется floor — «пол»
Также обратите внимание, что данный метод возвращает значение типа double. На входе у нас было число 5.25, после округления мы получили 5.0 — тип double.
3. Math.ceil() — данный метод округляет число до ближайшего целого вверх. У нас было число 5.25, а вернул нам этот метод число 6.0 Даже если бы у нас было число 5.01, данный метод все равно вернул бы нам 6.0, потому что ближайшее целое число вверх — это 6.0
Вот почему данный метод называется ceil — от слова ceiling, «потолок». Также обратите внимание, что данный метод возвращает значение типа double.
Ниже приводим Вам табличку, где это все расписано схематически.

Также Вы должны знать методы Math.random(), Math.max () и Math.min() . Об этих методах Вы можете почитать вот в этих 2 статьях:
Понравилась статья? А еще можно у нас пройти курс обучения по Java. Детальнее на сайте Vertex Academy.
- ← Массивы в Java
- Как вывести минимальное и максимальное значение в Java →
Вам также может понравиться.
Как вывести минимальное и максимальное значение в Java
21 октября, 2016 Vertex Academy Комментарии к записи Как вывести минимальное и максимальное значение в Java отключены
Округлите число с плавающей точкой до 2 знаков после запятой в Java
В этом посте будет обсуждаться, как округлить двойное число до 2 знаков после запятой в Java.
1. Использование Math.round() метод
The Math.round() метод возвращает значение указанного двойного округления до ближайшего длинного значения. Следующее решение демонстрирует его использование для округления двойного числа до 2 знаков после запятой. Обратите внимание, что количество нулей указывает количество десятичных знаков.
public class Main < public static void main ( String [ ] args ) < double random = Math . random ( ) ; System . out . println ( random ) ; double roundOff = Math . round ( random * 100.0 ) / 100.0 ; System . out . println ( roundOff ) ;
Обратите внимание, что количество нулей указывает количество десятичных знаков. Поэтому, чтобы округлить до 3 знаков после запятой, выполните следующие действия:
public class Main < public static void main ( String [ ] args ) < double random = Math . random ( ) ; System . out . println ( random ) ; double roundOff = Math . round ( random * 1000.0 ) / 1000.0 ; System . out . println ( roundOff ) ;
Вот альтернативная, эквивалентная версия приведенного выше кода:
public class Main < public static void main ( String [ ] args ) < double random = Math . random ( ) ; double roundOff = ( double ) Math . round ( random * 100 ) / 100 ; System . out . println ( roundOff ) ;
Арифметика с плавающей запятой может быть очень сложной, и этот метод также не всегда работает так, как хотелось бы. Например, значение 296.335 округляется до 296.33 вместо 296.34 .
public class Main < public static void main ( String [ ] args ) < double random = 296.335 ; System . out . println ( random * 100.0 ) ; // 29633.499999999996 System . out . println ( Math . round ( random * 100.0 ) / 100.0 ) ; // 296.33
2. Использование DecimalFormat.format() метод
Здесь идея состоит в том, чтобы создать DecimalFormat используя указанный шаблон и вызовите DecimalFormat.format() метод для получения отформатированной строки. Чтобы ограничить двойное значение двумя десятичными точками, вы можете использовать шаблон #.## . Вы также можете установить RoundingMode с использованием setRoundingMode() метод. Этот подход страдает той же проблемой, что и первый подход. т. е. значение 296.335 округляется до 296.33 вместо 296.34 .
Класс Math . Функции округления
Перед изучением данной темы рекомендуется ознакомиться со следующими темами:
- Класс 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 color: #800080;"> double xx; xx = Math.abs(x); System.out.println("xx color: #800080;"> float ff = Math.abs(f); System.out.println("ff https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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 color: #800080;">float f = 11.43f; // ff = 12.0 float ff = (float)Math.ceil((double)f); System.out.println("ff https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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) color: #008000;"> // 2. Для типу double double d1 = -7.75; double resD = (double)Math.floor(d1); System.out.println("floor(-7.75) https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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 color: #008000;"> // 2. Для типа long long resLong = Math.floorDiv(2300L, 83L); System.out.println("2300/83 https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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 color: #008000;"> // 2. Для типа long long l1 = 100L; long l2 = 9L; System.out.println("100L / 9 https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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) color: #008000;"> // 2. Для типа double System.out.println("max(2.88, 3.11) https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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) color: #008000;"> // 2. Для типа float System.out.println("min(2.88, 3.11) https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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) color: #008000;"> // 2. Для типа float float start2 = -18.3f; float direction2 = -2.4f; float resF = Math.nextAfter(start2, direction2); System.out.println("nextAfter(-18.3, -2.4) https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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) color: #008000;"> // 2. Для типа float float value2 = 8.3f; System.out.println("nextDown(8.3f) https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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) color: #008000;"> // 2. Для типа float float value2 = 8.3f; System.out.println("nextUp(8.3f) https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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) color: #008000;">// 2. Отрицательное число arg = -7.65; res = Math.rint(arg); System.out.println("rint(-7.65) https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑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) color: #0000ff;">out.println("round(5.2) color: #008000;"> // 2. Отрицательное число arg = -7.65; res = Math.round(arg); System.out.println("round(-7.65) color: #0000ff;">out.println("round(-7.15) https://www.bestprog.net/ru/2022/10/14/java-class-math-rounding-functions-ru/#contents">⇑14. Функция ulp(). Получить количество единиц в последнем знаке для указанного аргумента
Согласно документации объявление функции следующее:
static float ulp(float arg); static double ulp(double arg);
- arg – исходный аргумент.
Приклад.
Связанные темы
- Класс Math . Общие сведения. Тригонометрические функции
- Экспоненциальные функции