出力を次のようにしたい場合に、JavaでdoubleからStringへのフォーマットを行う方法はありますか?
意図した出力:
n=12.4 の場合 => 12.4
n=12.0 の場合 -> 12
現在の出力を返す String.valueof(n) を使用していました:
if n=12.4 => 12.4
if n=12.0 => 12.0
どんな助けでも大歓迎です。
出力を次のようにしたい場合に、JavaでdoubleからStringへのフォーマットを行う方法はありますか?
意図した出力:
n=12.4 の場合 => 12.4
n=12.0 の場合 -> 12
現在の出力を返す String.valueof(n) を使用していました:
if n=12.4 => 12.4
if n=12.0 => 12.0
どんな助けでも大歓迎です。
使用できますDecimalFormat
:
System.out.println(new DecimalFormat("0.#").format(12.0));
少し前にこれを書きましたが、うまくいきました
public static String formattedDouble(double d)
{
Long l = (d == Math.floor(d)) ? (long)d : null;
String str = "";
if (l == null)
str += d;
else
str += l;
return str;
}
倍精度を小数点以下2桁の文字列にフォーマットするには、次のようなコードを使用します
String.format("%1$,.2f", doubleValue)
intの場合これを使用します
String.format("%d", intValue );