Java-money类的名称

Java-money类的名称,java,classname,Java,Classname,以CAD/USD为单位将成本/价格/金额存储为美元和美分的独立longs的类,我该如何命名?我有“PriceInDollars”,但我并不喜欢它,而且我总是忘记它。有什么想法吗 编辑:显然我应该使用BigDecimal,而不是重新发明轮子。我想我就用这个吧。不过,我在自己的课堂上确实学到了很多东西 请看我的另一个问题 货币 Money 价格 Value(不过我不会) 我会选择价格或成本。无论您选择哪一个,您都可以将其子类化以获得更具体的信息 Money和Currency似乎更像是价格的属性,而

以CAD/USD为单位将成本/价格/金额存储为美元和美分的独立
long
s的类,我该如何命名?我有“PriceInDollars”,但我并不喜欢它,而且我总是忘记它。有什么想法吗

编辑:显然我应该使用
BigDecimal
,而不是重新发明轮子。我想我就用这个吧。不过,我在自己的课堂上确实学到了很多东西

请看我的另一个问题

  • 货币
  • Money
  • 价格
  • Value
    (不过我不会)

    • 我会选择
      价格
      成本
      。无论您选择哪一个,您都可以将其子类化以获得更具体的信息

      Money
      Currency
      似乎更像是价格的属性,而不是价格本身的名称。只有我的2美分(无法抗拒双关语)。

      我会用“现金”

      纸币或硬币形式的货币;货币。 用货币或支票支付商品或服务


      它不是特定于任何货币类型的,您可以在其中添加许多动词来进行兑换等。

      为什么
      货币
      是一个错误的选择?与IMO的
      BigDecimal
      相比,将整部分和小数部分以及
      java.util.Currency
      封装到一个类中是一种更好的设计


      我不喜欢任何以“InDollars”结尾的东西,因为它不必要地使你的设计偏向于美元或CAD。如果这个想法更一般,为什么要这样做呢?

      货币价值:-)

      我把我的
      货币账户称为

      首先,我不同意所有人说要使用
      大十进制。即使您的“备份存储”是
      BigDecimal
      (这是非常明智的),您也应该使用自己的类,因为具有
      BigDecimal
      字段、方法参数等不会传递任何语义。常用的重复使用类型(如货币金额)应该有自己的类


      尽管如此,不要自己写。有很多关于这方面的库已经存在,并且已经为您考虑了许多问题。就个人而言,我会从斯蒂芬·科尔伯恩(Joda Time fame)的作品开始。

      我会称之为
      Amount
      ,用单位持有
      java.util.Currency
      long


      这是我在不同项目中使用过的。它实现了
      Comparable
      ,并有一个
      toString
      方法来格式化要显示的金额(尽管它在格式化金额时不考虑您的区域设置)。

      您是否考虑过不命名它,而是使用许多现有类中的一个?同意;这就是BigDecimal的用途。虽然基于长时间的解决方案比使用浮动要好得多,但您可能仍然没有涵盖取整模式,这在金融应用中是法律强制要求的。我不同意。原语和类似的东西应该用来构造更具体的对象,但最终,他应该有一个独特的东西来捕捉他想要的概念。IPv4地址不是int,也不是字符串;但它可以用其中任何一种来表示。可以使用INT和字符串来构建IPv4Address类。但最重要的是,不要重新发明轮子。如果有人已经创建了一个类来捕获对象的概念,请使用它。BigDecimal不携带货币。Java需要一个Money类。如果您需要与金额捆绑在一起的货币,当然可以为此编写一个类。并使用BigDecimal作为金额。除了(可能)包含的货币之外,OP的基于长时间的实现并不是一个更具体的表示,它纯粹是重新发明轮子(糟糕)。一个“更具体的表示法”除了用不同的名称包装一个基类之外什么都不做,这在我看来完全是无用的、破坏性的抽象。谢谢你的快速回答。我不想使用货币,因为它是一种特定货币的金额,而不是货币本身。钱也是一样,价值不够具体,剩下的是价格,这比我所拥有的要好,我想,我想我不需要指定印度群岛。。。除非有人说我更喜欢的话,否则我会同意的。谢谢前世我们用的是更冗长的货币单位。Meh.“除了现金”有非常具体的含义,至少对英语母语的人来说是这样,指的是政府发行的纸币和硬币的具体形式。人们不认为支票是现金。也不是一些商品或服务成本的抽象概念“现金”;相反,“现金”是一种用于转移某种货币金额的形式。我同意货币,但“货币”怎么能被解释为价格的一种属性呢?@Laurence:我想的是一种货币类别,有不同的货币。作为价格的一个属性可能不能完全准确地描述我的想法。但是,对于Mk12所描述的类来说,金钱确实感觉太抽象了。我不同意
      Currency
      ,因为已经有了一个标准的API类
      java.util.Currency
      。(请注意,它只表示货币代码,而不是金额)。当然,如果需要,可以将货币与金额捆绑在一起。但是,与BigDecimal相比,说出“整数和小数部分”的一个优点是为了表示金额。此外,
      BigDecimal
      只存储数字,而不存储货币(美元、加元等)。