当前页面: 开发资料首页 → J2SE 专题 → 输出格式(控制输出小数位数,对齐)
输出格式(控制输出小数位数,对齐)
摘要: 输出格式(控制输出小数位数,对齐)
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也是不等长的字符串,以至格式异常混乱。
问怎么对齐?
简单点的:
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支持。
DecimalFormat类
如果你用1.5以上,也可以用楼上的方法
用Format类。
1.
DecimalFormat format=new DecimalFormat();
for
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);
}
用楼的说的那个printf方法,
它好像会自动进行四舍五入的,
这个人要注意
lip009(深蓝忧郁)
第一问有误啊!
double a=234.23423454454;
DecimalFormat format=new DecimalFormat("#0.00");
System.out.println(format.parse(a));
我用的是jdk15
不好意思,写错了
double a = 234.23423454454;
DecimalFormat format = new DecimalFormat("#0.00");
System.out.println(format.format(a));