JAVA 去掉小数点后无效的0

JAVA 去掉小数点后无效的0

  • String类型间的相互转换
    • 1、借助BigDecimal实现
    • 2、借助java正则实现

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;  
    } 

你可能感兴趣的:(java,java)