如何在String
下面是我的字符串值,
908.10001
508.1000
405.000
302.0000
15.880
我希望输出像
908.10001
508.1
405.0
302.0
15.88
答案 0 :(得分:2)
非常简单的解决方案:
String string1 = Double.valueOf("302.1000").toString(); // 302.1
String string2 = Double.valueOf("302.0000").toString(); // 302.0
String string3 = Double.valueOf("302.0010").toString(); // 302.001
答案 1 :(得分:0)
我认为String replaceAll方法可以在参数中使用正则表达式,因此它可以做你想要的。我可能看起来像这样:
String s = s.indexOf(".") < 0 ? s : s.replaceAll("0*$", "").replaceAll("\\.$", "");
答案 2 :(得分:0)
你也必须处理尾随的非零。尝试使用比例为1的BigDecimal和ROUND_HALF_UP舍入(如果适用于您):
BigDecimal bd = new BigDecimal("302.0000");
System.out.println(bd.setScale(1,BigDecimal.ROUND_HALF_UP).toString()); //outputs 302.0
答案 3 :(得分:0)
您可以构建BigDecimal并使用stripTrailingZeros()。
BigDecimal bd = new BigDecimal("302.00000").stripTrailingZeros();
System.out.println(bd.toString());