Округление дробного числа в Java — Math.round и DecimalFormat

В Java округлить дробное число до заданного количества знаков после запятой можно несколькими способами: через System.out.format() или через класс DecimalFormat.

Чтобы понять этот пример, нужно знать:

  • Примитивные типы данных в Java

  • Базовый ввод и вывод в Java

Пример 1: округление через format

public class Decimal {

    public static void main(String[] args) {
        double num = 1.34567;

        System.out.format("%.4f", num);
    }
}

Вывод:

1.3457

В этой программе мы использовали метод format(), чтобы вывести число num с 4 знаками после запятой. Спецификатор .4f означает «вывести число с плавающей точкой (f) с 4 знаками после точки (.4)».

Пример 2: округление через DecimalFormat

import java.math.RoundingMode;
import java.text.DecimalFormat;

public class Decimal {

    public static void main(String[] args) {
        double num = 1.34567;
        DecimalFormat df = new DecimalFormat("#.###");
        df.setRoundingMode(RoundingMode.CEILING);

        System.out.println(df.format(num));
    }
}

Вывод:

1.346

В этой программе мы использовали класс DecimalFormat для округления числа num. Шаблон #.### означает «до 3 знаков после запятой». Режим округления задан как Ceiling — округление вверх, поэтому последняя цифра округляется в большую сторону.

Поэтому 1.34567, округлённое до 3 знаков, выводится как 1.346: цифра 6 — это следующее число после 5 в третьем знаке.

Подсказка

У RoundingMode есть и другие режимы: HALF_UP (математическое округление), FLOOR (вниз), DOWN (к нулю) и т. д.