jdk里面的Double类就是这样实现的toString方法你可以用下面的方法
 /**
   * 格式化字符串,使金额保留指定位数的小数
   * @param douNum
   * @param bitNum
   * @return
   */
  public  String getFormatString(String  strNum, int bitNum) {
    double douNum = Double.parseDouble(strNum);
    String format = "0";
    if (bitNum <= 0) {
      format = "0";
    }
    else {
      format += ".";
      for (int i = 0; i < bitNum; i++) {
        format += "0";
      }
    }
    DecimalFormat f = new DecimalFormat(format);
    return f.format(douNum);
  }

解决方案 »

  1.   

    用BigDecimal转换一下就ok了,代码如下:
       Double dValue = Double.valueOf("123456789.1234");
       BigDecimal original = new BigDecimal(dValue.doubleValue());
       BigDecimal result = original.setScale(precision, BigDecimal.ROUND_HALF_DOWN);
       //precision是格式化小数点后的位数,如要取小数点后2位,则precision=2;
      

  2.   

    直接使用Format类来进行格式化