4

「$」が価格に近い文字列をフォーマットしようとしています。

例えば:

Oranges     3     $3.00     $9.00

しかし、私が現在持っているもの:

Oranges     3 $    3.00 $    9.00

これは私のコードです: (注: 「価格」と「合計」は double データ型です)

System.out.printf("%-25s %10s $%10s $%10s", item, quantity, price, total);

すべての出力の間にギャップを設けたいのですが、必要な結果を得る方法が見つかりません。これを解決する方法はありますか?

4

3 に答える 3

1

試す

System.out.printf("%-25s %10s %10s %10s", item, quantity, "$" + price, "$" + total);

出力

Oranges                            3       $3.0       $9.0

または、何よりも、フォーマッタメソッドを使用してください

    String format(double d) {
        return String.format("$%.2f", d);
    }
...
    System.out.printf("%-25s %10s %10s %10s", item, quantity, format(price), format(total));

出力

Oranges                            3      $3.00      $9.00
于 2013-01-27T08:39:57.647 に答える
0

価格と合計の 10 スペースのパディングを削除します。

System.out.printf("%-25s %10s $%s $%s", item, quantity, price, total);
于 2013-01-27T08:29:57.797 に答える
0

それらを出力用の文字列に変換できますか?このリンクに従って、Double 型には toString() メソッドを呼び出すことができます。

http://www.java2s.com/Code/Java/Language-Basics/Convertdoubletostring.htm

次に、各文字列の先頭にドル記号を出力するだけです (文字列を配列にロードして、すべての文字列にドル記号を追加すれば、すべての文字列をループすることもできます)。

これは最良の選択肢ではないかもしれませんが、うまくいくと確信しています。

于 2013-01-27T08:31:58.850 に答える