質問
コスト/価格/金額を CAD/USD で個別に保存するクラスに名前を付けるにはどうすればよいですか? long
ドルとセントですか?「PriceInDollars」もあるのですが、あまり好きじゃなくていつも忘れてしまいます。何か案は?
編集:どうやら使ったほうがいいみたいです BigDecimal
, 、車輪の再発明ではありません。それだけを使うと思います。しかし、自分のクラスを作成しようとして多くのことを学びました。
私の他の質問をご覧ください ここ!
解決
私はPrice
またはCost
のいずれかとなるだろう。あなたが選ぶどの1、あなたはそれがより具体的な取得するためにサブクラス化することができます。
Money
とCurrency
は、より多くの彼らは価格自体の名前として本当に適した価格、ないの属性になるように見えます。ちょうど私の2セント(しゃれに抵抗することができませんでした)。
他のヒント
まず、私はBigDecimal
を使用するように言う皆に反対します。あなたの「バッキングストレージは」(非常に賢明である)BigDecimal
場合でもBigDecimal
フィールド、メソッドのパラメータ、などを持っているため、独自のクラスを使用する必要があり、何の意味を伝えません。通貨額のはずの独自のクラスを持っています。
あなた自身が書いていない、と述べたことすべてを。すでに存在しており、あなたのための問題の多くを通じて考えている。このためのライブラリがたくさんあります。個人的に、私は(ジョダタイム名声の)スティーブンColebourneにより、ジョダマネーで始まるのだろう。
Currency
Money
Price
Value
(私はそうしませんが)
MonetaryValue: - )
なぜ悪い選択Money
されますか?クラスにjava.util.Currency
とともに、全体と小数部分をカプセル化するIMO、BigDecimal
より良いデザインです。
私は、「InDollars」で終わるものを好きではありません。なぜそのアイデアは、より一般的ですか?
私は "現金" を使用します。
http://www.answers.com/topic/cashする 紙幣や硬貨の形でお金。通貨。 通貨または小切手による商品やサービスの支払います。
それはあなたが変換して、そのようなのためにそれに追加できる動詞がたくさん、任意の通貨の種類に固有ではありません。
私は私のMonetaryAmount
呼ばれてきました。
私ならそう呼ぶだろう Amount
, を持って、 java.util.Currency
そして long
ユニットと一緒に。
ここは 私自身の Amount
クラス さまざまなプロジェクトで使用したものです。それは実装します Comparable
そして、 toString
表示用に金額を書式設定するメソッドです (ただし、金額の書式設定にはロケールは考慮されません)。