0

申し訳ありませんが、最初は php PHP integer part paddingで実行したかったのですが、コードの別の部分で Java で実行することに気付きました

したがって、少なくとも2文字の整数部分で数値をフォーマットする必要があります

2.11 -> 02.11
22.11 -> 22.11
222.11 -> 222.11
2.1111121 -> 02.1111121

double x=2.11; 
System.out.println(String.format("%08.5f", x));

できますが、右の末尾のゼロが煩わしいです。任意の大きな浮動部分が必要です

String.format("%02d%s", (int) x, String.valueOf(x-(int) x).substring(1))

完全に醜く不正確です(02.1099を与えます...)

new DecimalFormat("00.#############").format(x)

浮動部分を切り捨てます

より良い解決策のためのthx

4

2 に答える 2

0

私ができる最高のものは

public static String pad(String s){
    String[] p = s.split("\\.");
    if (2 == p.length){
        return String.format("%02d.%s", Integer.parseInt(p[0]), p[1]);
    }
    return String.format("%02d", Integer.parseInt(p[0]));
}

パッド (文字列.valueOf(1.11111118)) -> 01.11111118

于 2012-07-08T16:42:18.583 に答える
-1

DecimalFormat を使用したワンライナーを次に示します。

new DecimalFormat("00." + (x + "").replaceAll(".", "#")).format(x)

10 進数を 00.#############... としてフォーマットします。ここで、"#############..." の長さは長さから来ます。あなたの小数の(「#」を超えると何もしません)。

String.valueOf(x)必要に応じて代わりに使用できます(x + "")

于 2012-07-08T15:24:50.417 に答える