合計金額の操作

コインクラス

bitcoinj APIではBitcoinの量をCoinクラスを使用して表します。
Coinクラスは内部的にlong型をラップしており、任意に多額のビットコインを表現することができない点を除いてBigIntegerとは表面的に似ています。ビットコインの総発行枚数には制限があるので、将来的に問題になる可能性は低いです。

Coinインスタンスで表されるSatoshiの額は、public finalフィールドの値からアクセスできます。Coinクラスではこれらの量を扱うのがより簡単で、satoshi単位で金額が動作するように、より安全に型を設定します。

型を安全に操作するために方法として以下のメソッドが提供されています:

1.add(加算)、subtract(減算)、multiply(乗算)、divide(除算)、divideAndRemainder
2.isPositive、isNegative、isZero、isGreaterThan、isLessThan
3.左シフト、右シフト、ネゲート
4.文字列から解析する。たとえば、Coin.parseCoin( "1.23")は与えられたビットコインの枚数として解析します。
5.satoshi単位を使って構築する

ZERO/COIN/CENT/MILLICOIN/MICROCOIN/SATOSHI/FIFTY_COINSを表す静的インスタンスもあります。

CoinはComparable、Serializableを実装しており、bitcoinjは通貨インタフェースも提供しています。通貨インタフェースは、「最小の単位指数」を持つlong型として表される、任意の通貨単位の金額を表します。Bitcoinの場合、これは8です(1BTC=100,000,000satoshi)。

書式設定

bitcoinjでは、文字列とCoinの量を表す書式の設定するための2つのAPIを提供します。

1.MonetaryFormatは
・様々な単位(BTC、mBTC、uBTCなど)
・小数点以下の桁数の変更
・数値の丸め
・金額の前後に通貨コードの使用を許可する

以上の設定できる書式設定クラスです。一部の事前設定されたインスタンスは、MonetaryFormatとCoinの両方で静的インスタンスとして提供されます。 MonetaryFormatは、Bitcoinだけでなく、フィアット通貨でも使用できるようになっています。

2.BtcFormatは、Javajava.text.Formatインフラストラクチャ上に構築された、複雑なAPIです。

・最も適切な単位を自動で選択
ユニコードのBitcoinシンボル(Bのマーク)と金額の単位コードを含む文字列を解析する機能
・フォーマットされた量を、小数点の周りに揃えることができるように文字列を埋め込む

これらの多くの機能を説明するJavaDocがあります。
どのAPIを使用するかはあなた次第です。