我有一个经常处理“百分比”的财务应用程序。我们使用“十进制”类型来避免舍入错误。我的问题是:
如果我的数量代表76%,最好将其存储为0.76
或76
吗?
此外,从代码可维护性的角度来看,有哪些优点和/或缺点?有没有这方面的惯例?
答案 0 :(得分:4)
如果百分比只是问题域的一小部分,我可能会坚持使用原始数字。
PerCent 字面意思是每百,并且是十进制数字;例如76 %
等于 0.76
。因此,在没有units of measure support in the programming language itself的情况下,我会将百分比表示为十进制数。
这也意味着您不需要执行特殊算术来计算百分比,但是如果您需要以百分比显示数字,将需要乘以100。
如果百分比是问题域的核心部分,您应该考虑放弃Primitive Obsession,而是引入正确的Value Object。
尽管如此,即使你引入了一个包含原始数字转换的Percent
值对象,你仍然会遇到潜在的程序员错误,因为数字0.9
本身就意味着90 %
或0.9 %
取决于您选择如何解释它。
最后,我最好的建议是使用适当的单元测试来覆盖您的代码库,以便锁定转换代码。