我不认为仅用一种方法就可以做到这一点
DecimalFormat,但是这种单线解决了这个问题:
formattedValue = formattedValue.replaceAll( "^-(?=0(\.0*)?$)", "");
它消除(其替换
""减号),如果它后面跟着0-n个字符的
"0.00000...",所以这将任何结果,如类似的工作
"-0",
"-0."或
"-0.000000000"
这是一些测试代码:
public static void main(String[] args) { System.out.println(format(-0.023)); System.out.println(format(12.123)); System.out.println(format(-12.345)); System.out.println(format(-0.123)); System.out.println(format(-1.777));}public static String format(double number) { DecimalFormat df = new DecimalFormat("#,##0.0"); df.setRoundingMode(RoundingMode.HALF_UP); String formattedValue = df.format(number); formattedValue = formattedValue.replaceAll("^-(?=0(\.0*)?$)", ""); return formattedValue;}
输出(预期):
0.012.1-12.3-0.1-1.8
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)