JAVA 去掉小数点后无效的0
String类型间的相互转换
1、借助BigDecimal实现
String result = new BigDecimal("1.59000")).stripTrailingZeros().toPlainString()
BigDecimal.stripTrailingZeros() : 去除末尾多余的0
BigDecimal.toPlainString() :不采用科学计数法显示
注:以上只适用于java8及以上版本
2、借助java正则实现
java7版本还是用正则吧
【原因】发现类似0.0这种格式的小数,使用BigDecimal方法不管用,网上说这是BUG,在java8版本才修复
/**
* 使用java正则表达式去掉多余零,先去0再去.
* @param doubleStr
* @return
*/
public static String subZeroAndDot(String doubleStr){
if(null != doubleStr && doubleStr.indexOf(".") > 0){
doubleStr = doubleStr.replaceAll("0+?$", "");//去掉多余的0
doubleStr = doubleStr.replaceAll("[.]$", "");//如最后一位是.则去掉
}
return doubleStr;
}