System.out.println(new BigDecimal("11.1020").stripTrailingZeros());

解决方案 »

  1.   

    楼主可以试试这个:
    NumberFormat nf = NumberFormat.getInstance();
    double num=Double.valueOf(nf.format(1.20000));
    System.out.println(num);
      

  2.   

       System.out.println( new BigDecimal("100.000").toString());
    程序的输出即为:  100.000
    如果我们希望去除末尾多余的0,那么我们应该这么写:
        System.out.println( new BigDecimal("100.000").stripTrailingZeros().toString());
    其中,stripTrailingZeros()函数就是用于去除末尾多余的0的,但是此时程序的输出为: 1E+2
    是科学计数法,可能并不是我们想要的。
    解决的方法很简单,如果想要避免输出科学计数法的字符串,我们要用toPlainString()函数代替toString()。如:
        System.out.println( new BigDecimal("100.000").stripTrailingZeros().toPlainString());
    此时程序的输出就为 100
      

  3.   

    String.format()
    可以格式化输出内容。
      

  4.   


    /**
     * 格式化float类型的方法
     * @param val 要格式化的值
     * @param retain 保留的小数位
     * @return
     */
    public float formatFloat(float val, int retain) {
    BigDecimal bigDecimal = new BigDecimal(val);
    return bigDecimal.setScale(retain, BigDecimal.ROUND_HALF_UP).floatValue();
    }