2

私はこのコードを持っています:

public double theInterest(){     
        return (accountBalance*i) +accountBalance; 

私の質問は、小数点以下 2 桁まで表示されるように、方程式の結果に DecimalFormat を課す方法はありますか?

どんな助けでも本当に感謝しています。

4

2 に答える 2

4

メソッドは double を返し、DecimalFormat は文字列のみを返すことができるため、あなたの質問は回答不能として投稿されています。フォーマットされたdoubleを返そうとしても意味がありません。メソッドを変更することはお勧めしませんが、別のメソッドを作成することを検討getInterestString()theInterest()てください.

つまり、

public String getInterestString() {
  NumberFormat moneyFormat = NumberFormat.getCurrencyInstance();
  return moneyFormat.format(theInterest();
}

またはより一般的には、

private NumberFormat moneyFormat = NumberFormat.getCurrencyInstance();

public String currencyFormat(double numberValue) {
  moneyFormat.format(numberValue);
}

編集:そしてsvcがよく述べているように、不正確さが問題になるため、金銭の計算に浮動小数点数を使用しないように努める必要があります。BigDecimal を使用することをお勧めします。

于 2013-04-17T19:48:44.180 に答える
2

double金融業務には一切使用しないでください。通常、BigDecimal数字はその国の最低通貨単位で評価されます。

BigDecimal tenDollars = new BigDecimal(1000L, 2);
// Alternatively, use the BigDecimal(BigInteger, int) constructor.

sを使用して、丸めモードを設定できますMathContext。内部的には、通貨値の BigDecimal を保存します。ユーザーに表示するときにのみ、フォーマットを使用して文字列に変換します。

于 2013-04-17T20:03:21.970 に答える