问题如题:
注意是 不要四舍五入!Double number = 1.226;
System.out.print(number);
//我要的结果是:1.22 不是1.23

解决方案 »

  1.   

    这样把。不采用别的方法。你就自己写一个把。字符串截取就行了。System.out.println("1.123".substring(0,"1.123".indexOf(".")+3));
    得到后再转回double类型。
      

  2.   


    DecimalFormat df=new DecimalFormat(".##");
    double d=1252.2545;
    d=Double.valueOf(df.format(d));
    System.out.println(d);
    方法有很多种
      

  3.   

    System.out.println(Double.parseDouble("111.123456".substring(0,"111.123456".indexOf(".")+3)));
      

  4.   

    转为String,将长度>=指定长度后的截取掉.取前面几位的,然后转成double类型
      

  5.   

    Double number = 1.226;
            BigDecimal bd = new BigDecimal(number);
            BigDecimal setScale = bd.setScale(2, bd.ROUND_DOWN);
            System.out.println(setScale);
      

  6.   

    我来写一种我经常用的double a = 12.111;
    System.out.println(String.format("%.2f", a-0.005));
      

  7.   

    double number=1.226;
    String s=Double.toString(number);
    String s1=s.substring(0,s.indexOf(".")+3);
    double number1=Double.valueOf(s1);
    System.out.println(s1);
      

  8.   

    BigDecimal setScale = bd.setScale(2, RoundingMode.DOWN);API:相对于此遗留方法,应优先使用新的 setScale(int, RoundingMode) 方法。