Аннотация Decimal, а внутри float
Строки прайс-листа приходят из импорта: цена бывает float (0.1), строкой ("1499.00")
или Decimal. В классе написано price: Decimal, но сумма трёх товаров по 0.1 получается
0.30000000000000004. Доработайте PriceRow так, чтобы после создания price всегда был Decimal
с тем значением, которое видит человек: 0.1 → Decimal("0.1").
Подсказка 1 из 2
Выведите type(PriceRow(1, 0.1).price).
Подсказка 2 из 2
Приведите тип в __post_init__. Сравните Decimal(0.1) и Decimal(str(0.1)).