Простой вопрос (и извинения, если это слишком основано на мнении): Как мне хранить проценты?
При написании программы, которая включает в себя большое количество аналитических расчетов, или финансовых расчетов с процентами (ставки возврата,APR, размер прибыли и т. Д.), Какой из трех приведенных ниже вариантов является наилучшей практикой с точки зрения производительности, читаемости, надлежащей практики кодирования и т. Д.20% = 0.20
и напишите фильтр для преобразования этого в пользовательский интерфейс.(В django это будет шаблонная метка, которую нужно будет применять каждый раз, когда отображается процент).
Сохранять проценты как целые числа и делить на 100 всякий раз, когда необходимо выполнить вычисления вбэкэнд, т. е. 20,13% хранится как 20.13
и используется как percent/100 * myNumber
.
Создать (или использовать библиотеку) тип данных для Percent, который может выполнять и то и другое, например:наличие атрибута «Percent.value» с атрибутом оформленного свойства для «Percent.display», который умножается на 100 и округляется.Я полагаю, что в этом классе для __str__ задано отображаемое значение, тогда как во всех других операциях используется необработанное значение.
Насколько я понимаю, 1 является наиболее интуитивным, но некажется наилучшей практикой для инкапсуляции и может привести к проблемам с ошибками, отображающими нечетные значения, отладку и т. д. 2 кажется безумно раздражающим для разработчиков и может привести к ошибкам из-за этого.Вариант 3 выглядит как ненужная перегрузка памяти.
Что наиболее широко используется в промышленности и почему?