/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/java/java-503-15-003/main.java
28 строк
1 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
// Неправильный подход — использование double для денег double price1 = 0.1; double price2 = 0.2; double total = price1 + price2; System.out.println(total); // 0.30000000000000004 — погрешность! // Правильный подход — BigDecimal BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.2"); BigDecimal sum = a.add(b); System.out.println(sum); // 0.3 — точный результат // Операции с округлением BigDecimal quantity = new BigDecimal("3"); BigDecimal unitPrice = new BigDecimal("1.333"); BigDecimal totalPrice = unitPrice.multiply(quantity) .setScale(2, RoundingMode.HALF_UP); // 4.00 // Сравнение значений BigDecimal x = new BigDecimal("10.00"); BigDecimal y = new BigDecimal("10.0"); System.out.println(x.equals(y)); // false — scale различается System.out.println(x.compareTo(y) == 0); // true — числовое равенство // Создание из примитивов и строк BigDecimal fromInt = BigDecimal.valueOf(100); // 100 BigDecimal fromDouble = BigDecimal.valueOf(123.45); // 123.45 BigDecimal fromString = new BigDecimal("999.99"); // 999.99