Округление чисел в Java

Округление чисел до 2 или 3 знаков после запятой является общим требованием для Java-программиста. К счастью, Java API предоставляет несколько способов округления чисел в Java. Вы можете округлить любые числа с плавающей запятой в Java до n мест С помощью Math.round(), BigDecimal или DecimalFormat.

Лично я предпочитаю использовать BigDecimal для округления любого числа в Java из-за его удобного API и поддержки нескольких режимов округления. Кроме того, если вы работаете в финансовой индустрии, лучше всего делать денежные расчеты в BigDecimal, а не в double, как я уже говорил в своем предыдущем посте о распространенных ошибках Java.

Одна из важных вещей, которую следует иметь в виду при округлении чисел, — это режим округления. Режим округления решает то, как округлить отброшенную дробь, и знание популярных режимов округления.
Если вы новичок в Java, я предлагаю вам сначала начать изучать такие основы, как типы данных, floatvslong и floatvsdouble, прежде чем переходить к сложной теме округления чисел в Java.

3 способа округления чисел с плавающей запятой в Java

Не тратя больше времени, вот 3 различных способа округления чисел в Java. Они используют класс RoundingMode и DecimalFormat в Java для форматирования чисел с плавающей запятой и округления их до двух знаков после запятой.

Режимы округления в Java

Важная вещь, которую нужно знать перед округлением чисел, — это режим округления. В общем, программист говорит, что если наименее значимая цифра меньше пяти, то она будет округлена к меньшей цифре, больше пяти-к большей цифре, и они путаются, когда она равноудалена.

Режимы округления определяют, как следует округлять наименее значимую цифру. Класс BigDecimal имеет режим округления, определенный как целочисленная константа, которая позже была заменена перечислением RoundingMode из Java 1.5. Вот некоторые из важных режимов округления, которые следует запомнить:

  • RoundingMode.HALF_DOWN: округление вниз, если оба соседа равноудалены, как 2.5, округлит до 2.0
  • RoundingMode.HALF_UP: округление вверх, если оба соседа находятся на одинаковом расстоянии, например 2.5, округлится до 3.0
  • RoundingMode.HALF_EVEN: округление в сторону четного соседа, если оба соседа равноудалены, например 2.5 округлится до 2.0, а 5.5 округлится до 6.0

Существует еще несколько режимов округления, таких как ВВЕРХ, ВНИЗ, ПОЛ и ПОТОЛОК, которые также стоит знать. Если вы хотите узнать больше о числах с плавающей запятой и этих понятиях, я предлагаю вам присоединиться к Основам Java: Курс языка Java по Pluralsight. Это отличный фундаментальный курс для разработчиков Java.

Округление чисел в Java

Вводимое
число
5,52,51,61,11,0-1,0-1,1-1,6-2,5-5,5
Ceiling63221-1-1-1-2-5
-552111-1-1-1-25
Floor52111-1-2-2-3-6
Half_Down52211-1-1-2-2-5
Half_Even62211-1-1-2-2-6
Half_Up63211-1-1-2-3-6
Up63221-1-2-2-3-6

Округлите число до 2 десятичных знаков с помощью BigDecimal

Всякий раз, когда нужно округлить число до n десятичных знаков, большинство программистов прибегают к BigDecimal. Не только BigDecimal позволяет вам выбрать режим округления, но делать это благодаря данному методу очень легко. Вот пример округления числа до 2 знаков после запятой :

floatnumber = BigDecimal.valueOf(цифра)
.setScale(2, BigDecimal.ROUND_HALF_DOWN)
.floatValue();

В setScale () вы можете указать количество десятичных знаков, которые вам нужно округлить, например, чтобы округлить до 5 цифр, укажите 5. Здесь мы установили шкалу как 2, потому что мы округляем до 2 цифр. Мы также использовали режим округления как ROUND_HALF_DOWN, который похож на RoundingMode.HALF_DOWN.

Режим округления HALF_DOWN округляет числа вниз, если отброшенная дробь равна 0,5. Вместо BigDecimal.ROUND_HALF_DOWN вы также можете использовать RoundingMode.HALF_DOWN, но только имейте в виду, что перечисление RoundingModeбыло добавлено начиная с Java 5.

Округлите число до 2 цифр с помощью DecimalFormat

Если вы округляете числа только для отображения, то вам следует рассмотреть возможность использования класса методов DecimalFormat или Stringformat. Хотя нет ничего плохого в использовании BigDecimal для округления чисел, DecimalFormat кажется правильным классом для форматирования чисел.

Вот Java-код для округления числа до 2 значащих цифр с помощью DecimalFormat в Java.

DecimalFormatdf = новыйDecimalFormat(«#.00»);
float number = Float.valueOf(df.format(decimal));

#.00 предназначен для округления до 2 десятичных знаков, если вы хотите округлить до 3 или 4 знаков, просто используйте #.000 или #.0000 для создания десятичного формата. Чтобы узнать больше о форматировании чисел, см. Раздел Как форматировать числа в Java с помощью DecimalFormat.

Заключение

Это все о том, как округлить число до 2 десятичных знаков в Java. Вы увидели 3 способа округления чисел в Java. BigDecimal выглядит как самый оптимальный способ округления чисел из-за удобного API и поддержки различных режимов округления.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *