ieee743不精确,最好用BigDecimal

解决方案 »

  1.   

    public static String formatKagaku(String str, int flag) { if (str == null || str.equals("")) {
    str = "";
    }

    if(str.indexOf('.') == -1){

    if (flag == 1) {
    str = str + ".0";
    }else{

    }
    return str;
    }

    String temp = str.substring(str.indexOf('.'));
    double input = Double.parseDouble("0" + temp);
    String syuSu = str.substring(0,str.indexOf('.'));

    if (flag == 1) {

    input = input * 10;
    input = Math.round(input);
    input = input / 10;
    BigDecimal big = new BigDecimal(input + Double.parseDouble(syuSu));
    str = "" + big; 

    if(str.indexOf('.') == -1){
    str = str + ".0";
    }

    } else if (flag == 0) {

    input = Math.round(input);
    BigDecimal big = new BigDecimal(input + Double.parseDouble(syuSu));
    str = "" + big;  }

    return str;
    }
      

  2.   

    sysmaster(为什么我还不懂) ,i want to know too..
      

  3.   

    可以设置有效数字输出啊。如果不光要输出,设置有效数字,给输出流,流给float。
      

  4.   

    import java.text.*;class test
    {
    public static void main(String args[])
    {
    double d = 2.225222222222;
    NumberFormat nf = new DecimalFormat();
    nf.setMaximumFractionDigits(2);
    System.out.println (nf.format(d));
    }
    }
      

  5.   

    1位小数就是Math.round(XX*10)/102位小数就是Math.round(XX*100)/100