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