2017-10-01 11 views
-3

以下のオプションを試しました。Bigdecimalで3000.00を保存する方法

BigDecimal expectedAmount = BigDecimal.valueOf(3000.00); 

BigDecimal expectedAmount = BigDecimal.valueOf(3000); 

BigDecimal expectedAmount = new BigDecimal(3000.00); 

BigDecimal expectedAmount = new BigDecimal(3000); 

それらのすべては3000.0を保存するが、私は私のJUnitテストのために3000.00を保存したいと考えています。どのようにそれを行うか分からない。

+2

あなたが何を求めているのかわかりません。 3000.0は3000.00とは違うと思いますか? – luk2302

答えて

1

あなたは文字列としてのvalを受け入れるconstructorを使用しなければならない:

BigDecimal expectedAmount = new BigDecimal("3000.00"); 
+1

私はこの方法を試していない – Ashish

3

つ以上のオプション:

BigDecimal expectedAmount1 = new BigDecimal(3000).setScale(2); 
BigDecimal expectedAmount2 = BigDecimal.valueOf(300000L, 2); 

最初のものは整数のみ金額のために動作します。 .setScale(2)はちょうど "小数点の後に2つのゼロを加えます"。 2番目の値は再スケールされた値(例えば、ドルを表示したい場合は整数セントの金額)を必要とし、小数点が最後の2桁左に置かれることを宣言します。

どちらのバージョンも文字列表現を必要としないため、パフォーマンス上のメリットがあります。

関連する問題