Java整数部分填充

时间:2012-07-08 14:24:13

标签: java numbers format pad

抱歉,我最初想在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)

将截断浮动部分

用于任何更好的解决方案

2 个答案:

答案 0 :(得分:0)

这是使用DecimalFormat的单行代码:

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

它将您的小数格式设置为00。############# ...,其中“############# ...”的长度来自从你的小数的长度(“#”s超过什么都没有。)

如果您愿意,可以使用String.valueOf(x)代替(x + "")

答案 1 :(得分: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]));
}

pad(String.valueOf(1.11111118)) - > 01.11111118