请问我用这个方法 public String formatDouble8 ( double data )
    {
        try
        {
            DecimalFormat df = new DecimalFormat ( "###0.00000000;(###0.00000000)" ) ;
            df.setMaximumFractionDigits(8);
            String str = df.format ( data ) ;
            if ( str.equals ( ".00000000" ) )
                return "0.00000000" ;
            else
                return str ;
        }
格式化这个数字443.546,却得到443.54598999的结果,但是我想得到443.54600000的结果,怎么办呢

解决方案 »

  1.   


    import java.text.DecimalFormat;public final class Period {
    public String formatDouble8(double data) {
    DecimalFormat df = new DecimalFormat("###0.00000000;(###0.00000000)");
    df.setMaximumFractionDigits(8);
    String str = df.format(data);
    if (str.equals(".00000000"))
    return "0.00000000";
    else
    return str;
    } public static void main(String[] args) {
    Period p = new Period();
    System.out.println(p.formatDouble8(443.546));
    }
    }不解释
      

  2.   

    搞错了,是在用rs.getDouble()取sqlserver的real类型时出了精度问题,呵呵,结贴了