简单的问题(并且如果这是基于意见而道歉):我应该如何存储百分比?
在编写包含大量分析计算的程序,或涉及百分比(退货率,APR,利润率等)的财务计算时,以下三个选项中的哪一个是最佳实践,在性能,可读性,良好的代码实践等方面。
0.20
,并编写一个过滤器以在UI中对其进行转换。 (在django中,这将是一个模板标签,每次显示一个百分比时都需要应用)。20.13
并像percent/100 * myNumber
一样使用。据我所知,1是最直观的,但似乎不是封装的最佳实践,并且可能导致显示奇数值,调试等错误的问题.2似乎对开发人员来说非常烦人,并且可能导致由于这个错误。选项3似乎是不必要的内存开销。
哪个是行业中使用最多的,为什么?
我建议你选择1。
但是你应该使用Pythons float
库,例如Djangos decimal
来存储它,而不是DecimalField
。 decimal.Decimal
对象允许固定的舍入,这将使您免于很多麻烦。
我建议将百分比存储为乘法所需的值(例如:将21.56%
存储为Decimal('0.2156')
)。在我看来,最好在需要时改变显示,而不是在计算中进行转换。
是的,Django中的模板标签听起来像是以百分比形式显示这些值的好方法。