Запитання з тегом «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 …

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); } Однак він також створює так званий розділювач групування, завдяки ","якому всі мої значення виходять так: xxx,xxx Мені …


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 

2
BigDecimal setМасштаб і кругла
Яка різниця між цими двома дзвінками? (Чи є?) // 1. new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP)); // 2. new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
140 java  bigdecimal 

8
Перетворення BigDecimal в цілий
У мене є режим глибокого сну, який повертає мені BigDecimal. У мене є ще один метод API, якому мені потрібно передати це число, але він приймає Integer як параметр. Я не можу змінити типи повернення або змінні типи обох методів. Тепер як перетворити BigDecimal в цілий і передати його другому …


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 BigDecimal("0"); BigDecimal …

6
Як друкувати відформатовані значення BigDecimal?
У мене є BigDecimalполе , amountяке представляє гроші, і мені потрібно надрукувати його значення в браузері в форматі , як $123.00, $15.50, $0.33. Як я можу це зробити? (Єдине просте рішення , яке я бачу себе отримує floatValueвід BigDecimalа потім використовувати , NumberFormatщоб зробити дві цифри точності для дробової частини).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.