2012-03-02 11 views
8

こんにちは、私は私のコードを表示させ、文字列ビルダに分割し、その文字列ビルダを印刷した後、上記のコードで文字列ビルダーを使用してjavaに小数点以下2桁まで印字する方法は?

string.append("Memomry usage:total:"+totalMemory/1024/1024+ 
"Mb-used:"+usageMemory/1024/1024+ 
" Mb("+Percentage+"%)-free:"+freeMemory/1024/1024+ 
" Mb("+Percentagefree+"%)"); 

を印刷しようとしています「totalmemory」と「freememoryは」ポイントでバイト値を持つdouble型でありますnullでないので、 "1024"で2回割って "Mb"で取得し、 "string"はこのコードを使用した後に文字列ビルダーの変数です。単に以下のように結果を得ています:

Used Memory:Memomry usage: 
total:13.3125Mb-used:0.22920989990234375Mb (0.017217645063086855%) 
-free:13.083290100097656Mb (0.9827823549369131%) 

私はこのように "used:2345.25"のように、十二桁のパーセンテージと使用メモリと空きメモリの値をmbで取得したいnはアドバンス

+0

なぜ「StringBuilderを使用していますか?この問題の技術は間違っています。答えを参照してください... – EJP

答えて

12

String.format()

System.out.println(String.format("output: %.2f", 123.456)); 

出力:それはのNumberFormatを使用することが可能であり、それはこの問題のサブクラスはDecimalFormatだにもかかわらず

output: 123.46 
2

おかげでのDecimalFormatを使用して、この

double d = 1.234567; 
    DecimalFormat df = new DecimalFormat("#.##"); 
    System.out.print(df.format(d)); 

のように試してみてください、あなたの提案を

希望を覚えて、我々は我々が見たいと思った道をフォーマットすることができます。

+0

これも参照してくださいので、答えを答えます。http://stackoverflow.com/a/5710406/713414 – Jayy

1

DecimalFormatを使用すると、小数点以下2桁まで出力できます。だから、あなたは2345.25を出力します

NumberFormat f = new DecimalFormat("#.00"); 
System.out.println(f.format(x)); 

を記述し、小数点以下をx = 2345.2512を印刷します。

1

は、 これらのクラスは、アプリケーションのために必要とされないことも多くの機能を提供します。

目的がほんの印刷されている場合は、Stringクラスの書式機能を使用することをお勧めします。あなたの特定のコードのために、それは次のようになります。

string.append(String.format("Memomry usage:total:%1.2f Mb-used:%1.2f Mb(%1.2f %%)-free:%1.2f Mb(%1.2f %%)",totalMemory/1024/1024,usageMemory/1024/1024,Percentage,freeMemory/1024/1024,Percentagefree)); 

あなたはすべての数字は関係なく、彼らは文字列から解析したり、文字列にフォーマットされているかどうかの表現されている標準フォーマットを指定しようとしている場合は、私が推薦します* Formatクラスのシングルトンを使用します。標準的なフォーマットを使用することも、メソッド間でフォーマット記述を渡すこともできます。

あなたのアプリケーションで使用する適切な方法を選択するのに役立ちます。

関連する問題