double类型四舍五入到小数点后一位。
已有方法如下:
private String yearRate(String num1, String num2) {        double dnum1 = Double.parseDouble(num1);
        double dnum2 = Double.parseDouble(num2);             BigDecimal bdtemp = new BigDecimal((dnum1 / dnum2) * 100);
            String rate = Double.toString(bdtemp.setScale(1,
                    BigDecimal.ROUND_HALF_UP).doubleValue());
            return rate;
     }当num1=“9999999999999”num2=“2222”时
返回字符串为:“4.500450045E10”
怎样才能返回:450045004500.0各位帮忙。

解决方案 »

  1.   

    最后不要用Double.toString
    用new DecimalFormat("0.0").format(....doubleValue());
      

  2.   

    同意楼上!
    DecimalFormat
    format(double number, StringBuffer result, FieldPosition fieldPosition) 
              格式化一个 double 值,以生成一个字符串。
      

  3.   

    这种情况应该用format处理,否则会出现两个问题:
    1.浮点数的不精确性,会出现小数点后面很多的0
    2.数值过大后,会出现科学计数的情况。
      

  4.   

    DecimalFormat   myFormatter   =   new   DecimalFormat("####.#");   
    myFormatter.format(double);