1.如果有个double a为234.23423454454
那么System.out.println(a);
就会输出234.23423454454。
我想输出234.23         (也就是只输出2位小数)
怎么办?2.要输出如下格式的信息
材料   厂别   消耗量
r1     f1      200
r1     f2      3000
......
我在一个for循环中写的是
System.out.println(resourceID+"     "+factoryID+"      "+amount);
但是如果resourceID有的是2个字母,有的是3个字母的话,后面的就对不齐了。
就成了
ab     f1      200
abc     f2      3000
还有就是factoryID也是不等长的字符串,以至格式异常混乱。
问怎么对齐?

解决方案 »

  1.   

    简单点的:public class FormatOutput {
            public static void main(String args[]) {
                    System.out.printf("%.2f\n", 2.3333);
                    System.out.printf("%-10s%-10s%-10s\n", "ab", "f1", "200");
                    System.out.printf("%-10s%-10s%-10s\n", "abc", "factory", "200");
            }
    }需要Java 1.5支持。
      

  2.   

    DecimalFormat类
    如果你用1.5以上,也可以用楼上的方法
      

  3.   

    1.
    DecimalFormat format=new DecimalFormat();
      for
      

  4.   

    1.double a=234.23423454454;
      DecimalFormat format=new DecimalFormat("#0.00");
      System.out.println(format.parse(a));
    2.for(int i=0;i<10;i++){
        ...
        System.out.println(resourceID);
        for(int n=resourceID.length();n<10;n++){
           System.out.print(" ");
        }
        System.out.println(factoryID);
        for(int n=resourceID.length();n<10;n++){
           System.out.print(" ");
        }
        System.out.print(amount);
      }
      

  5.   

    用楼的说的那个printf方法,
    它好像会自动进行四舍五入的,
    这个人要注意
      

  6.   

    lip009(深蓝忧郁)
    第一问有误啊!
    double a=234.23423454454;
    DecimalFormat format=new DecimalFormat("#0.00");
    System.out.println(format.parse(a));
    我用的是jdk15
      

  7.   

    不好意思,写错了
        double a = 234.23423454454;
        DecimalFormat format = new DecimalFormat("#0.00");
        System.out.println(format.format(a));