Округление дробного числа в 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 (к нулю) и т. д.