2

単利と複利の計算を実行する学術プロジェクト用のプログラムを作成しました。私が抱えている問題は、数値に「セント」としてゼロ以外のものが含まれていない場合、計算された単利が切り捨てられることです(つまり、小数点が表示されません-金額がたとえば1750.00の場合、表示されます1750 まで) 複利と単利の両方のメソッドで DecimalFormat を使用したにもかかわらず!

私はプロジェクトを広範囲にデバッグしましたが、一体何が起こっているのか本当に途方に暮れています。

プログラムからの関連する抜粋は次のとおりです。

  double p=1.0; // just some sample values for p, r, and y.
  double r=2.0;
  double y=3.0;
  double calculatedInterest = p + (p*(r/100)*y);
  String output = new String("Computed Simple Interest is: $");
  output = output + new DecimalFormat("#.##").format(calculatedInterest);
  return output;

ここに完全なプログラムがあります:

http://pastebin.com/sgg0P5ZQ

[編集] 話の教訓: 問題を抱えている、または理解していないクラスの JavaDoc を読まないと、苦労することになります。シンボリック パターン #.## は、DecimalFormat の普遍的なキャッチオールであるだけでなく、異なるシンボル パターンが異なることを行います。私の場合、必要だったのは、必要な 10 進数を表示するために #.## を 0.00 に変更することでした。jpeさん、ありがとうございます。

4

1 に答える 1

2

DecimalFormat の JavaDoc を見てください。「#.##」のようなパターンを使用します。ドキュメントは次のように#言っています:

Symbol  Location    Localized?  Meaning 
#   Number  Yes     Digit, zero shows as absent

パターンを に置き換える必要があります0.00

于 2012-09-30T05:40:32.437 に答える