Java с нуля - Полный Курс Java Для Начинающих [4,5 ЧАСА]
Почему Big Decimal считает 1.0 и 1.00 разными числами — и к чему это приводит в Java
Представьте: в базе лежит цена 1.00. Сервис получает из другого источника 1.0, сравнивает через equals() и решает, что цена изменилась. Улетает событие, срабатывает уведомление, бухгалтерия задаёт вопросы. Знакомо? В Java такая ловушка встречается чаще, чем кажется, и виноват не JSON, не база и не «странный» парсер, а масштаб Big Decimal. Big Decimal — не просто число с плавающей точкой. Он хранит два значения: unscaled value и scale. Грубо говоря, цифры без запятой и количество знаков после запятой...