[英]Java integer part padding
对不起,我最初想要做它在PHP PHP整数部分填充 ,但意识到我会做它用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)
将截断浮动部分
寻求更好的解决方案
我能带的最好的是
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
这是使用DecimalFormat的单线:
new DecimalFormat("00." + (x + "").replaceAll(".", "#")).format(x)
它将您的十进制格式设置为00。############# ...,其中“ ############ ...”的长度来自长度小数点后的数字(多余的“#”无效)。
如果愿意,可以使用String.valueOf(x)
代替(x + "")
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.