java round double/float to 2 decimal places
You can use DecimalFormat too to round number to 2 decimal places.
Output:
Read also:
7 ways to format double to 2 decimal places in java
7 ways to format float to 2 decimal places in java
Using BigDecimal
You can convert double or float to BigDecimal and use setScale() method to round double/float to 2 decimal places.
Here is the example:
Output:
Using Math.round(double*100.0)/100.0
Output:
You must be wondering how this works.
Using Apache common Math
You can also use Apache common ‘s math library to round double or float to 2 decimal places.
Add the following dependency to pom.xml .
You can find versions of commons-math over here.
Here is the example:
That’s all about rounding double/float to 2 decimal places
Was this post helpful?
Share this
How to get square root of number in java
Get random number between 0 and 1 in java
Related Posts
Author

Related Posts

PI in Java
Table of ContentsPI Constant in JavaPI Constant in Java Math Class The Pi is a constant value in Mathematics that represents a floating-point value 3.1415. It is mostly used in geometry to calculate area, circumference, volume, etc. If you have studied geometry in your academic, then you may be aware of use of Pi such […]

Calculate total surface area of Cylinder in java
In this post, we will see how to calculate total surface area of Cylinder in java. Formula of calculating total surface area of Cylinder is: Surface area of Cylinder = 2 *Π * r * r + 2 *Π * r * h Where r is radius of cylinder and h is height of cylinder […]

Calculate total surface area of Hemisphere in java
In this post, we will see how to calculate total surface area of Hemisphere in java. Hemisphere is exactly half of sphere. There can be many practical examples of Hemisphere. You can divide earth into two hemisphere i.e. Northen Hemisphere and Southern Hemisphere. Formula of calculating total surface area of Hemisphere is: surface area of […]

Get random number between 0 and 1 in java
In this post, we will see how to get random number between 0 to 1 in java. We have already seen random number generator in java. We can simply use Math.random() method to get random number between 0 to 1. Math.random method returns double value between o(inclusive) to 1(exclusive). [crayon-64cad8742924d935547907/] When you run above program, […]

How to get square root of number in java
Table of ContentsSyntaxReturn typeSquare root of number In this tutorial. we will see if how to get square root of number in java. It is very simple to get square root of number in java. You can simply use Math’s sqrt() method to calculate square root of number. Syntax [crayon-64cad8742631b276398663/] Return type It returns square […]
Изучаем округление в Java: как в Java округлить число до n знаков после запятой
В этой статье мы рассмотрим, как в Java округлить число до n десятичного знаков.
Десятичные числа в Java
Java предоставляет два примитивных типа, которые могут использоваться для хранения десятичных чисел: float и double . Double — это тип данных, используемый по умолчанию:
Но оба типа данных не должны использоваться для вычисления точных значений . Например, валютных котировок и округления чисел. Для этого лучше применять класс BigDecimal .
Форматирование десятичного числа
Если нужно вывести десятичное число с n знаками после запятой, можно отформатировать выходную строку:
Также можно округлить значение с помощью класса DecimalFormat :
Этот класс позволяет настроить процесс округления числа.
Java: округление Double с помощью BigDecimal
Чтобы округлить тип double до n знаков после запятой, можно написать helper-метод :
Обратите внимание, что при создании экземпляра класса BigDecimal мы должны всегда использовать конструктор BigDecimal(String) . Это позволяет избежать проблем с представлением неточных значений.
Можно сделать то же самое, используя библиотеку Apache Commons Math :
Актуальную версию этой библиотеки можно найти здесь . Для округления чисел применяется метод Precision.round() , который принимает два аргумента — значение и масштаб:
По умолчанию он использует тот же метод округления HALF_UP, что хэлпер. Поэтому результаты должны быть одинаковыми.
Кроме этого можно изменить процесс приведения чисел, передав в качестве третьего параметра необходимый метод округления.
Округление чисел с плавающей запятой с помощью DoubleRounder
DoubleRounder — это утилита из библиотеки decimal4j . Она предоставляет быстрый метод округления double чисел до 18 знаков после запятой.
Последнюю версию библиотеки можно найти здесь . Чтобы подключить ее, добавьте зависимость в файл pom.xml :
Пример использования утилиты:
Но DoubleRounder дает сбой в нескольких сценариях. Например:
Метод Math.round() java
При использовании метода Math.round() можно контролировать п -количество десятичных разрядов путем умножения и деления на 10^п :
Этот метод не рекомендуется использовать для округления чисел, поскольку он усекает значение . Во многих случаях значения округляются неправильно:
Заключение
В этой статье мы рассмотрели различные методы округления чисел до n знаков после запятой, доступные в Java.
Можно просто отформатировать вывод без изменения значения или округлить переменную с помощью вспомогательного метода или подключаемых библиотек.
Округление в Java

В Java есть целочисленные типы данных (long, int, char, short, byte) и есть типы с плавающей точкой (float, double), а по-русски — «с плавающей запятой» . Преобразование значений с дробной частью в целочисленные полезно для упрощения вычислений, последующего чтения и для сокращения объемов используемой памяти. Сделать это можно так:
Однако полученный результат может отличаться от ожидаемого. В частности, в данном случае y будет равно 5, несмотря на то, что по всем правилам округления должно быть 6. Чтобы избежать этой многозначности, можно воспользоваться «дедовским» способом, без привязки к возможностям языка.
Однако данная форма записи имеет множество недостатков, от неправильного результата в частных ситуациях до неудобочитаемой записи в целом. Классический метод округления до целого — round. Допустим, дано число n. Тогда для округления запишем:
Если n имеет дробную часть менее 0,5, то число округляется в меньшую сторону, в противном случае — в большую. То есть стандартный математический алгоритм.
Если же вам требуется java округление в меньшую сторону — вместо дополнительной математической операции лучше сразу воспользоваться готовой функций FLOOR:
Java округление в большую сторону выполняется методом CEIL:
Как и в жизни, округлять можно не только до целого числа, но и до определенного знака после запятой. Как и в первом случае, в java округление до сотых можно сделать чисто математически:
Однако запись не слишком удобна, если вам требуется в java округление до плавающего числа знаков с заданным поведением. С помощью методов перечисления RoundingMode() у вас есть такая возможность. Методы следующие:
- UP — округление в сторону большего числа для положительных чисел и меньшего для отрицательных.
- DOWN — округление в сторону меньшего числа для положительных чисел и большего для отрицательных.
- CEILING — округление в сторону большего и для положительных, и для отрицательных чисел.
- FLOOR — округление в сторону меньшего и для положительных, и для отрицательных чисел.
- HALF_UP — округление в большую сторону в случае числа вида 0.5;
- HALF_DOWN — округление в меньшую сторону в случае числа вида 0.5;
- HALF_EVEN — классическое округление
Выглядит подобное округление чисел так:
Цифра в скобках указывает в java округление до 2 знаков double типа.
Специальные методы округления java позволяют разработчику решить любую задачу, не прибегая к грубым мультиязычным способам, содержащим ограничения и ошибки.
Округление числа double до двух десятичных знаков в Java
Часто при программировании на языке Java возникает потребность в округлении чисел с плавающей точкой. Например, может быть задача, при которой число 123.4567 должно быть округлено до двух десятичных знаков и приведено к виду 123.45 . Аналогично, если исходное число целое, например 123 , то результатом округления должно стать число 123.00 .
Рассмотрим, как эту задачу можно решить средствами Java.
Использование метода Math.round()
Одним из способов округления чисел является использование метода Math.round() . Данный метод округляет число до ближайшего целого. Чтобы округлить число до двух десятичных знаков, число сначала умножается на 100, округляется до ближайшего целого, а затем делится на 100.
В результате roundedNumber будет содержать значение 123.45 .
Использование класса DecimalFormat
Еще одним способом округления чисел является использование класса DecimalFormat . Этот класс предоставляет возможность форматировать числа с плавающей точкой с использованием различных шаблонов.
В результате roundedNumber будет содержать значение 123.45 .
Важно отметить, что при использовании класса DecimalFormat исходное число не изменяется, а создается новое число, которое соответствует заданному формату.
В зависимости от конкретной ситуации можно выбрать наиболее подходящий способ округления.