-1

重複の可能性:
整数を小数点以下2桁にフォーマットする方法は?

私はここでこのコードに苦労しています。

DecimalFormat df = new DecimalFormat("00.##");
df.setMinimumFractionDigits(2);
return df.format(Integer.valueOf(amount));

これが私が必要とするものです:

入力:2、出力:2.00

入力20、出力:20,00

入力1003、出力:100,30

入力120323、出力:1.203,23(千二百二十三セント)

パターン「example##。##」がないため、DecimalFormatを使用できません。

私は常に小数点以下2桁が必要です。金額が100未満の場合は、金額自体を取得して「.00」を追加するだけです。100より大きい場合は、最後の2桁が必要な小数点以下2桁であることを意味します。彼らはセントです。

誰か助けてもらえますか?

4

2 に答える 2

4

小数点以下2桁を追加したい場合(これは常に.00どちらであり、少し冗長です.

return String.format("%.2f", amount > 100 ? amount/100.0 : (double) amount);

ユニットを1セット保持することをお勧めします。常にセントを使用できる必要があります。これを行わないと、混乱する可能性があります。たとえば、100.00 である 100 と 10000 があるとします。

于 2013-01-07T14:08:29.240 に答える
1

金額が 100 未満の場合は、金額自体を取得して ".00" を追加するだけで済みます。100 より大きい場合は、最後の 2 桁が必要な小数点以下 2 桁であることを意味します。

まず、この問題を解決する必要があります。クラスまたはネイティブ型は、1 種類のデータのみを保持する必要があり、状況に応じてそのデータがどのように処理されるかについての詳細な知識を他のクラスまたはコードに負わせるべきではありません。

すべてのケースでペニーの数値を返すようにするか、小数点をサポートする数値を返すようにします。より良い解決策は、ペニーの数です。

そうすれば、フォーマットにロジックを入れる必要がなくなります。これは、同じものを 2 回目にフォーマットする必要があるときに、そこに存在することはありません。

于 2013-01-07T14:10:32.027 に答える