金钱
代表货币价值。
有关完整描述,请参见 EAA 模式 第 488 页
世界上大部分计算机都处理金钱,因此我一直很困惑,为什么金钱不是任何主流编程语言中的第一类数据类型。缺乏类型会导致问题,最明显的是围绕货币。如果所有计算都在单一货币中进行,这不是一个大问题,但是一旦涉及多种货币,您就需要避免在没有考虑货币差异的情况下将美元加到日元。更微妙的问题在于舍入。货币计算通常舍入到最小的货币单位。当您这样做时,由于舍入误差,很容易损失几分钱(或您当地的等值)。
面向对象编程的好处在于,您可以通过创建一个处理这些问题的 Money 类来解决这些问题。当然,令人惊讶的是,没有一个主流基础类库真正做到这一点。