就像是
String.format("%10.2f", yourFloat)
// or
System.out.format("%10.2f", yourFloat)
将打印一个 10 字符宽(包括十进制)的字符串,小数点后有两个数字字符。
(文档)
所以
String.format("$%6.2f", value[i])
将对齐$
和.
字符(除非value[i] > 999.99
)。
代替:
System.out.println(
num[i] +"\t "+
qty[i] +"\t "+
money.format(price[i])+"\t"+
money.format(value[i])+"\t"+
reorder[i]);
(这正是你所拥有的,只是为了清晰起见并删除了滚动条)
我可能会写:
System.out.format("%5d\t %5d\t $%5.2f\t $%6.2f\t %5d %n",
num[i], qty[i], price[i], value[i], reorder[i]);
这假设price
andvalue
数组是浮点数或双精度数。由于不是标准类,因此除了添加符号money
之外,很难准确说出它的作用。$
文档中定义了字符串格式语法,但对于浮点数,它大致是:
%X.Yf
其中X
是总字段宽度,Y
是小数点数
例如
"123.40" Has a total width of 6:
3 + 1 [decimal point] + 2 = 6)
" 2.34" Also has a total width of 6:
2 [spaces] + 1 + 1 [decimal point] + 2 = 6