Вопросы с тегом «bigdecimal»

BigDecimal - это тип числового объекта в Java, который представляет десятичные числа с произвольной точностью.

8
ArithmeticException: «Не заканчивающееся десятичное расширение; нет точного представимого десятичного результата »
Почему следующий код вызывает исключение, показанное ниже? BigDecimal a = new BigDecimal("1.6"); BigDecimal b = new BigDecimal("9.2"); a.divide(b) // results in the following exception. Исключение: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

6
Двойной против BigDecimal?
Я должен вычислить некоторые переменные с плавающей точкой, и мой коллега предлагает мне использовать BigDecimalвместо, doubleтак как это будет более точным. Но я хочу знать, что это такое и как извлечь из этого максимум BigDecimal?


1
Округление BigDecimal до * всегда * имеет два десятичных знака
Я пытаюсь округлить значения BigDecimal до двух десятичных знаков. я использую BigDecimal rounded = value.round(new MathContext(2, RoundingMode.CEILING)); logger.trace("rounded {} to {}", value, rounded); но он не делает то, что я хочу последовательно: rounded 0.819 to 0.82 rounded 1.092 to 1.1 rounded 1.365 to 1.4 // should be 1.37 rounded 2.730 …

5
Как изменить десятичный разделитель DecimalFormat с запятой на точку / точку?
У меня есть этот маленький сумасшедший метод, который преобразует значения BigDecimal в красивые и удобочитаемые строки. private String formatBigDecimal(BigDecimal bd){ DecimalFormat df = new DecimalFormat(); df.setMinimumFractionDigits(3); df.setMaximumFractionDigits(3); df.setMinimumIntegerDigits(1); df.setMaximumIntegerDigits(3); df.setGroupingSize(20); return df.format(bd); } Тем не менее, он также создает так называемый группирующий разделитель, ","который выводит все мои значения следующим образом: …


5
Добавление BigDecimals с помощью потоков
У меня есть коллекция BigDecimals (в этом примере, а LinkedList), которые я хотел бы добавить вместе. Возможно ли использовать потоки для этого? Я заметил, что у Streamкласса есть несколько методов Stream::mapToInt Stream::mapToDouble Stream::mapToLong У каждого из которых есть удобный sum()метод. Но, как мы знаем, floatи doubleарифметика почти всегда плохая идея. …

4
BigDecimal равно () и сравнить с ()
Рассмотрим простой тестовый класс: import java.math.BigDecimal; /** * @author The Elite Gentleman * */ public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BigDecimal x = new BigDecimal("1"); BigDecimal y = new BigDecimal("1.00"); System.out.println(x.equals(y)); System.out.println(x.compareTo(y) == 0 ? "true": …

11
Дополнение для BigDecimal
Я хочу сделать несколько простых сумм с некоторыми значениями валюты, выраженными в BigDecimalтипе. BigDecimal test = new BigDecimal(0); System.out.println(test); test.add(new BigDecimal(30)); System.out.println(test); test.add(new BigDecimal(45)); System.out.println(test); Очевидно, я не очень хорошо понимаю BigDecimal арифметику, см. Вывод позади. Test 0 0 0 Может кто-нибудь мне помочь?
155 java  bigdecimal 


8
Преобразование BigDecimal в целое число
У меня есть метод Hibernate, который возвращает мне BigDecimal. У меня есть другой метод API, которому нужно передать это число, но он принимает целое число в качестве параметра. Я не могу изменить возвращаемые типы или типы переменных обоих методов. Как теперь преобразовать BigDecimal в Integer и передать его второму методу? …


9
Безопасное преобразование строки в BigDecimal
Я пытаюсь прочитать некоторые значения BigDecimal из строки. Скажем, у меня есть строка: «1,000,000,000.999999999999999», и я хочу получить из нее BigDecimal. Как это сделать? Во-первых, мне не нравятся решения с заменой строк (заменой запятых и т. Д.). Я думаю, что должен быть какой-нибудь аккуратный форматтер, который сделает эту работу за …
120 java  parsing  bigdecimal 

21
Преобразовать значение секунд в часы минуты секунды?
Я пытался преобразовать значение секунд (в переменной BigDecimal) в строку в editText, например «1 час 22 минуты 33 секунды» или что-то в этом роде. Я пробовал это: String sequenceCaptureTime = ""; BigDecimal roundThreeCalc = new BigDecimal("0"); BigDecimal hours = new BigDecimal("0"); BigDecimal myremainder = new BigDecimal("0"); BigDecimal minutes = new …

8
Как использовать операторы сравнения, такие как>, =, <на BigDecimal
У меня есть класс домена с unitPrice, установленным как тип данных BigDecimal. Сейчас я пытаюсь создать метод сравнения цен, но, похоже, у меня нет операторов сравнения в типе данных BigDecimal. Мне нужно изменить тип данных или есть другой способ?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.