предисловие
Ошибка была обнаружена в тесте два дня назад, и мне сказали, что он только изменил количество продуктов в деталях заказа, почему в подсказке было сказано, что цена за единицу продуктов в заказе не может быть изменена (бэкэнд ограничивает цена за единицу специальных заказов, которая не может быть изменена), но он явно не изменил цену за единицу продукта, что странно. Я посмотрел на входные параметры, и цена за единицу товара, переданная в модифицированном интерфейсе, равна цене = 222, а цена за единицу товара в базе данных — 222.000000. Это поле имеет тип BigDecimal, за исключением разной точности, значения равны, и equals используется для проверки равенства в фоновом режиме. Метод compareTo в основном используется BigDecimal для проверки информации в Интернете.
проверить два сравнения
public class BigDecimalDemo {
public static void main(String [] args) {
BigDecimal decimal1 = new BigDecimal("222");
BigDecimal decimal2 = new BigDecimal("222.000000");
System.out.println(decimal1.equals(decimal2));
System.out.println(decimal1.compareTo(decimal2));
}
}
результат операции
посмотрите на исходный код
метод equals для BigDecimal
метод сравнения с BigDecimal
- а
- а=б, вернуть 0
- а>б, вернуть 1
публика
Подпишитесь на официальный аккаунт, чтобы читать больше интересных статей