Math.round()
Округляет число до ближайшего целого.
Доступно с: Java 1.0
Синтаксис
static long round(double a)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| a | double / float | Дробное число. |
Возвращаемое значение
long (int for float)Ближайшее целое типа long; половина округляется вверх.
Примеры
Половина округляется в сторону большего:
void main() {
IO.println(Math.round(2.4));
IO.println(Math.round(2.5));
IO.println(Math.round(-2.5));
}Результат:
2
3
-2Округление до двух знаков после точки:
void main() {
double price = 19.98765;
double rounded = Math.round(price * 100) / 100.0;
IO.println(rounded);
}Результат:
19.99Примечания
Для double результат имеет тип long, поэтому int n = Math.round(x); не скомпилируется — нужно (int) Math.round(x). Если делить на 100, а не на 100.0, получится целочисленное деление. Для денег надёжнее BigDecimal.setScale(), для вывода — String.format("%.2f", x).
См. также
- Math.floor() — Округляет вниз — до ближайшего меньшего или равного целого.
- Math.ceil() — Округляет вверх — до ближайшего большего или равного целого.
- BigDecimal — Точное десятичное число — для денег и расчётов, где недопустимы ошибки округления double.
- String.format() — Собирает строку по шаблону с подстановками вроде %s и %d.
Вопросы и ответы по теме
В учебнике
- Преобразование типов — Автоматическое расширение типов, явное приведение (int), превращение строк в числа через Integer.parseInt и чисел в строки.