web-dev-qa-db-ja.com

java decimal string format

10進値を文字列にフォーマットする必要があり、常に2進で最大4進で表示します。

例えば

"34.49596" would be "34.4959" 
"49.3" would be "49.30"

これは、String.formatコマンドを使用して実行できますか?または、Javaでこれを行うより簡単/より良い方法はありますか。

63
richs

Java.text.DecimalFormatが必要です。

DecimalFormat df = new DecimalFormat("0.00##");
String result = df.format(34.4959);
77

はい、String.formatでできます:

String result = String.format("%.2f", 10.0 / 3.0);
// result:  "3.33"

result = String.format("%.3f", 2.5);
// result:  "2.500"
139
mostar

これを行う小さなコードスニペットを次に示します。

double a = 34.51234;

NumberFormat df = DecimalFormat.getInstance();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(4);
df.setRoundingMode(RoundingMode.DOWN);

System.out.println(df.format(a));
38
Yuval Adam

Java.text.NumberFormatはおそらくあなたが望むものです。

3
cagcowboy

Java.text.DecimalFormatが必要です

1
duffymo

NumberFormatとDecimalFormatは間違いなくあなたが望むものです。また、NumberFormat.setRoundingMode()メソッドにも注意してください。これを使用して、書式設定時に丸めまたは切り捨てを適用する方法を制御できます。

1
Brian Clapper