我正在使用printf方法制作类似收据的控制台输出。 它列出了项目,价格和数量,然后是总数。
我目前按照我想要的方式排列,尽管它没有显示2位小数。我需要显示完整的数字,例如:" $ 1.00",它目前正在显示" $ 1"。
这就是我所拥有的
System.out.printf("%-30s %-10s %-10s %-5s", "Item","Quantity","Price","Total\n");
System.out.printf("%-30s %-10.2f %-10.2s %-5.2s %s", "Gum",gumQuantity,"$"+gumPrice,"$"+gumTotal,"\n");
System.out.printf("%-30s %-10.2f %-10.2s %-5.2s %s", "Soda",sodaQuantity,"$"+sodaPrice,"$"+sodaTotal,"\n");
System.out.printf("%-30s %-10.2f %-10.2s %-5.2s %s", "Chips",chipsQuantity,"$"+chipsPrice,"$"+chipsTotal,"\n");
System.out.printf("%-52s %-5.2s %s", "Subtotal", "$"+subTotal,"\n");
System.out.printf("%-52s %-5.2s %s", "Sales Tax", "$"+salesTax,"\n");
System.out.printf("%-52s %-5.2s %s", "Total", "$"+totalFinal,"\n");
输出看起来像这样
Item Quantity Price Total
Gum 10.00 $1 $1
Soda 3.00 $1 $3
Chips 20.00 $1 $2
Subtotal $4
Sales Tax $3
Total $4
如何让它显示完整的值?
答案 0 :(得分:0)
您正在将价格和总金额打印为String
,您可以替换:
System.out.printf("%-30s %-10.2f %-10.2s %-5.2s %s", "Gum",gumQuantity,"$"+gumPrice,"$"+gumTotal,"\n");
有类似的东西:
System.out.printf("%-30s %-10.2f $%-10.2f $%-5.2f %n", "Gum", gumQuantity, gumPrice, gumTotal);
注意:强>
gumQuantity
,gumPrice
和gumTotal
应为double
或float
类型,否则您应将其转换为相应类型并将其传递给printf
方法。答案 1 :(得分:0)
您可以在第一个参数中添加该美元符号,因为目前您尝试将String
的小数添加为%-10.2s
,而不是您可以尝试以下方式。如果您的价格为{{1}你应该通过Integer/String
double
例如:
Double.valueOf(gumPrice)