Ценник описывает упаковку, а не количество внутри. Цена единицы создаёт общую базу: цена упаковки делится на полное количество. Единица измерения должна оставаться рядом с числом на каждом шаге.
Делите цену на итоговое количество
Для пакета за 4,50 € весом 500 граммов сначала получите 0,5 килограмма, затем разделите 4,50 € на 0,5. Результат — 9,00 €/кг. Пакет 1 кг за 8,00 € выгоднее, хотя его ценник выше.
Приводите только совместимые величины
Граммы, килограммы, унции и фунты описывают вес и приводятся к килограмму. Миллилитры и литры описывают объём. Вес нельзя сравнивать с объёмом без достоверной плотности, поэтому категории должны оставаться раздельными.
Сравнивайте до округления
Две отображаемые цены могут выглядеть как 0,03 € за штуку, хотя внутренние значения DECIMAL128 различаются. Нормализуйте и ранжируйте внутренние значения, затем округляйте цену до шести знаков, а процент — до двух. Также одинаково учитывайте налоги, залоги и условия акций.