- Как округлить двойной до двух десятичных знаков в Java?
- 20 ответов:
- Округление в Java
- Как округлить двойные до двух десятичных знаков в Java?
- 20 ответов
- Изучаем округление в Java: как в Java округлить число до n знаков после запятой
- Округление в Java: обзор
- Десятичные числа в Java
- Форматирование десятичного числа
- Java: округление Double с помощью BigDecimal
- Округление чисел с плавающей запятой с помощью DoubleRounder
- Метод Math.round() java
- Заключение
- Русские Блоги
- Несколько методов округления чисел с плавающей запятой до двух знаков после запятой в Java
- Предисловие
- Связанные точки знаний
- 1. Режим округления в Java
- 2. Используйте BigDecimal, чтобы округлить число до двух десятичных знаков.
- 3. Используйте DecimalFormat, чтобы округлить число до двух десятичных знаков.
- 4. Используйте Math.round () для выполнения операций округления в Java.
- Комплексный случай
- подводить итоги
- Интеллектуальная рекомендация
- Используйте шаблон состояния вместо if else
- Проектирование архитектуры: схема проектирования уровня балансировки нагрузки (5) — установка одного узла LVS
- Рыба образования, средняя школа закончила в учебном класс, как найти первую работу.
- Синглтон паттерн в питоне
- Java Counce Collection
- Вам также может понравиться
- динамический прокси-сервер jdk (Proxy, InvocationHandler), включая исходный код $ Proxy0
- Юля: Об изменениях в Array 1.0
- студия Android генерирует статическую библиотеку jni
- Nginx 502 раствор
- Java вызывает SMS-интерфейс WebService
Как округлить двойной до двух десятичных знаков в Java?
Это то, что я сделал, чтобы округлить двойной до 2 десятичных знаков:
это отлично работает, если сумма = 25.3569 или что-то в этом роде, но если сумма = 25.00 или сумма = 25.0, то я получаю 25.0! То, что я хочу, — это округление, а также форматирование до 2 десятичных знаков.
20 ответов:
вы работаете с деньгами? Создание String а затем преобразование его обратно довольно петлевой.
использовать BigDecimal . Это обсуждалось достаточно широко. Вы должны иметь Money класс и сумма должна быть BigDecimal .
даже если вы не работаете с деньгами, считать BigDecimal .
просто используйте: (легко, как пирог)
используйте держатель места цифры ( 0 ), а с ‘ # ‘ конечные / ведущие нули отображаются как отсутствующие:
вы Не могу ‘вокруг двойника к [любому количеству] десятичных знаков’, потому что двойники не имеют десятичных знаков. Вы можете преобразовать double в строку base-10 С N десятичными знаками, потому что base-10 действительно имеет десятичные знаки, но когда вы преобразуете его обратно, вы возвращаетесь в double-land, с binary частичная места.
Это самый простой я мог бы сделать это, но он получает работу намного проще, чем большинство примеров, которые я видел.
строку.формат.%»(2Ф», doubleValue) // изменение 2, согласно вашему требованию.
вы можете использовать org.апаш.палата общин.математика.утиль.MathUtils от apache common
double round = MathUtils.round(double1, 2, BigDecimal.ROUND_HALF_DOWN);
вы можете использовать Apache Commons Math:
ваш класс Money может быть представлен как подкласс Long или иметь член, представляющий денежную ценность как собственный long. Затем при присвоении значений вашим денежным экземплярам вы всегда будете хранить значения, которые на самом деле являются реальными денежными значениями. Вы просто выводите свой объект Money (через переопределенный метод toString() Ваших денег) с соответствующим форматированием. например, $ 1.25 во внутреннем представлении денежного объекта составляет 125. Вы представляете деньги в виде центов, или пенсов, или независимо от минимального номинала в валюте, которую вы запечатываете, есть . затем отформатируйте его на выходе. Нет, вы никогда не можете хранить «незаконную» денежную ценность, например, $1.257.
Источник
Округление в Java
Однако полученный результат может отличаться от ожидаемого. В частности, в данном случае 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 позволяют разработчику решить любую задачу, не прибегая к грубым мультиязычным способам, содержащим ограничения и ошибки.
В 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 позволяют разработчику решить любую задачу, не прибегая к грубым мультиязычным способам, содержащим ограничения и ошибки.
Источник
Как округлить двойные до двух десятичных знаков в Java?
Это то, что я сделал, чтобы округлить двойной до 2 десятичных знаков:
это отлично работает, если сумма = 25.3569 или что-то в этом роде, но если сумма = 25.00 или сумма = 25.0, то я получаю 25.0! То, что я хочу, — это округление, а также форматирование до 2 десятичных знаков.
20 ответов
вы работаете с деньгами? Создание String а затем преобразование его обратно довольно петля.
использовать BigDecimal . Это обсуждалось довольно широко. Вы должны иметь Money класс и сумма должна быть BigDecimal .
даже если вы не работаете с деньгами, считать BigDecimal .
просто используйте: (легко, как пирог)
выход будет 651.52
используйте держатель места цифры ( 0 ), а с ‘ # ‘ трейлинг/ведущие нули показывают, как отсутвует:
вы Не могу ‘вокруг двойника до [любого количества] десятичных знаков’, потому что двойники не имеют десятичных знаков. Вы можете преобразовать double в строку base-10 С N десятичными знаками, потому что base-10 имеет десятичные знаки, но когда вы преобразуете его обратно, вы возвращаетесь в double-land, с бинарные частичная места.
Это самое простое, что я мог бы сделать, но это делает работу намного проще, чем большинство примеров, которые я видел.
строку.формат.%»(2f», doubleValue) / / изменение 2, согласно вашему требованию.
вы можете использовать org.апаш.палата общин.математика.утиль.MathUtils из Apache common
double round = MathUtils.round(double1, 2, BigDecimal.ROUND_HALF_DOWN);
вы можете использовать Apache Commons Math:
ваш класс Money может быть представлен как подкласс Long или иметь член, представляющий денежное значение как родной long. Тогда при присвоении значений вашим денежным экземплярам вы всегда будете хранить значения, которые на самом деле являются реальными денежными значениями. Вы просто выводите объект Money (через переопределенный метод toString() Ваших денег) с соответствующим форматированием. e.g $ 1.25 во внутреннем представлении денежного объекта равно 125 . Вы представляете деньги в виде центов, пенсов или независимо от минимального номинала в валюте, которую вы запечатываете . затем отформатируйте его на выходе. Нет, вы никогда не сможете хранить «незаконную» денежную стоимость, например, $1.257.
Источник
Изучаем округление в Java: как в Java округлить число до n знаков после запятой
Округление в Java: обзор
В этой статье мы рассмотрим, как в 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.
Можно просто отформатировать вывод без изменения значения или округлить переменную с помощью вспомогательного метода или подключаемых библиотек.
Код, использованный в этой статье, доступен на GitHub .
Пожалуйста, опубликуйте ваши мнения по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, дизлайки, отклики, лайки, подписки!
Дайте знать, что вы думаете по этой теме материала в комментариях. За комментарии, лайки, отклики, подписки, дизлайки огромное вам спасибо!
Источник
Русские Блоги
Несколько методов округления чисел с плавающей запятой до двух знаков после запятой в Java
Предисловие
Округление до 2 или 3 знаков после запятой — это то, с чем мы, программисты на Java, обязательно столкнемся в повседневной разработке. К счастью, Java API предоставляет несколько методов округления чисел в Java.
Мы можем использовать Math.round() , BigDecimal или DecimalFormat Округлите любое число с плавающей запятой в Java до n разрядов. Я лично предпочитаю использовать BigDecimal Округлить любое число в Java, потому что в нем есть удобный API И поддерживает несколько режимов округления. Кроме того, если вы работаете в финансовой сфере, лучше всего использовать BigDecimal Выполните валютные расчеты.
При округлении чисел важно помнить следующее: Режим округления . Режим округления определяет, как отбрасывать отброшенные дроби, понимать такие как HALF DOWN , HALF UP с участием HALF EVEN Такие популярные режимы округления определенно помогут.
Связанные точки знаний
1. Режим округления в Java
Перед округлением важно знать режим округления. Обычно программисты думают, что если последняя цифра меньше 5, то округлить, если последняя цифра больше 5, то округлить;
Режим округления определяет, как следует округлять младший бит. BigDecimal У класса есть режим округления, определенный как целочисленная константа. Этот режим позже был принят в Java 1.5. RoundingMode Заменено перечислением. Вот несколько важных вещей, о которых следует помнить RoundingMode :
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.
Существуют и другие режимы округления, например UP , DOWN , FLOOR с участием CEILING , Это тоже стоит понять.
2. Используйте BigDecimal, чтобы округлить число до двух десятичных знаков.
Когда мне нужно округлить число до n знаков после десятичной запятой, моя первая мысль: BigDecimal 。 BigDecimal Не только позволяет выбирать RoundingMode И использовать BigDecimal Число легко округлить до любого десятичного знака. Это пример округления числа до двух десятичных знаков:
в setScale() , Вы можете указать количество десятичных знаков, которые необходимо округлить, здесь мы устанавливаем количество десятичных знаков равным 2, потому что мы будем округлять до 2 цифр. Уточняем режим округления ROUND_HALF_DOWN , Похожий на RoundingMode.HALF_DOWN . Вы также можете использовать RoundingMode.HALF_DOWN Вместо того BigDecimal.ROUND_HALF_DOWN , Но обратите внимание, что, поскольку Java 5 добавила RoundingMode перечислить.
3. Используйте DecimalFormat, чтобы округлить число до двух десятичных знаков.
Если числа округлены только для отображения, вам следует рассмотреть возможность использования DecimalFormat или String » класс метода формата . Несмотря на использование BigDecimal В округлении чисел нет ничего плохого, но DecimalFormat Кажется, это правильный класс для форматирования чисел.
Это код Java, использующий Java DecimalFormat Число округлите до двух значащих цифр.
#.00 Используется для округления до двух десятичных знаков, если вы хотите округлить до третьего десятичного знака, просто используйте #.000 или #.0000 Создать DecimalFormat . Чтобы узнать больше о форматировании чисел, узнайте, как использовать DecimalFormat Форматировать числа в Java.
4. Используйте Math.round () для выполнения операций округления в Java.
Math.round() Это классический метод округления чисел в Java. Хотя он не дает никаких API Чтобы указать количество цифр для округления, но, используя умножение и деление, вы можете округлить его до n или 2 знаков после запятой.
Кстати, это не самый предпочтительный метод округления чисел в Java, я предпочитаю BigDecimal , Но все же это удобный способ округления чисел, и его можно использовать во многих ситуациях. Вот как использовать в Java Math.round() Метод функции округления числа до 2 цифр.
Если вам нужно округлить до пяти знаков после запятой, мы умножаем на 100, чтобы округлить, а затем умножаем на 100000. Кстати, для Java лучше всего использовать BigDecimal Вместо того Math.round() Чтобы округлить числа в Java
Комплексный случай
Это всеобъемлющий случай Java, он объединяет в себе 3 вышеуказанных метода, вы можете округлить любое число в Java до двух десятичных знаков. Вы можете изменить программу до трех, четырех или любого количества цифр.
подводить итоги
Таким образом, как округлить число до 2 десятичных знаков в Java. Мы видели 3 способа округления чисел в Java, например BigDecimal , DecimalFormat с участием Math.round() . Из-за удобства API И поддержка различных режимов округления, BigDecimal Кажется, это лучший способ округлить числа.
Интеллектуальная рекомендация
Используйте шаблон состояния вместо if else
Большинство разработчиков все еще используютif elseСтруктура процесса, виделиjdonизbanqСтатья написана Большим Братом, используяcommand,aopЗамена шаблонаif elseСтруктура процесса. Я не совсем понял эт.
Проектирование архитектуры: схема проектирования уровня балансировки нагрузки (5) — установка одного узла LVS
1 Обзор Предыдущая статья «Проектирование архитектуры: проектирование уровня балансировки нагрузки (4) — Принципы LVS» (http://blog.csdn.net/yinwenjie/article/details/46845997), мы предста.
Рыба образования, средняя школа закончила в учебном класс, как найти первую работу.
Self-брат Я девять ноль, теперь занимается разработкой веб-конца Java. Некоторое понимание и восприятие учебных курсов. Учебное заведение является ямой, дорога, что вы уже прошли, только вы знаете, дл.
Синглтон паттерн в питоне
Дизайн шаблона Шаблон дизайна — это краткое изложение предыдущей работы, которое, как правило, широко распространено людьми и является зрелым решением конкретной проблемы. Он предназначен для многораз.
Java Counce Collection
TRUEEWAP основан на реализации красных навигаций. Это отображение отсортировано в соответствии с его природооформленным порядком или отсортировано в соответствии с компаратором, предусмотренным при со.
Вам также может понравиться
динамический прокси-сервер jdk (Proxy, InvocationHandler), включая исходный код $ Proxy0
1. Связанные классы и методы: java.lang.reflect.Proxy, Прокси предоставляет статические методы для создания динамических прокси-классов и экземпляров. newProxyInstance() Возвращает экземпляр прокси-кл.
Юля: Об изменениях в Array 1.0
Версии до 1.0, например 0.2-0.6, Но теперь 1.0 это сообщит об ошибке. Это использование претерпело серьезные изменения! такие как: Это можно считать серьезным изменением.
студия Android генерирует статическую библиотеку jni
Android Сяобай, который только что вошел в общество, описывает, как использовать студию Android для создания статической библиотеки jni. 1. Подготовка: Сначала установите ndk, сначала сами Baidu, позж.
Nginx 502 раствор
Общие решения Nginx 502 Bad Gateway следующие: Nginx 502 Ошибка 1: Количество сайтов велико, а количество PHP-CGI мало. Для этой 502 ошибки просто увеличивайте количество процессов PHP-CGI. В частност.
Java вызывает SMS-интерфейс WebService
1. Описание интерфейса WebService Отправьте в виде http-сообщения, выше — информация о запросе, а ниже — возвращаемое значение. Представлен раздел возвращаемого значения документа интерфейса. 2. Код J.
Источник