public String toString() //toString withing Shiftsupervisor class
{
String employee = name + ", " + iD + ", " + hireDate + ", $" + AnnualSal + ", $" + ProdBonus;
return employee;
}
在main中:
ShiftSupervisor supervisor1 = new ShiftSupervisor("John Smith", "123-A", "11-15-2005", 48000, 6500);
System.out.println(supervisor1);
我已经在我的toString中添加了“$”,但是我想要输出最后2个双打为48,000和6,500<<加上逗号!
我可以在我的setMethods中执行此操作吗?
答案 0 :(得分:2)
不要重新发明轮子。使用已经为您处理此问题的NumberFormat#getCurrencyInstance
。这是一个例子:
NumberFormat cnf = NumberFormat.getCurrencyInstance(Locale.US);
System.out.println(cnf.format(48000)); // prints $48,000.00
如果您想省略小数部分,只需使用NumberFormat#setMaximumFractionDigits
:
NumberFormat cnf = NumberFormat.getCurrencyInstance(Locale.US);
cnf.setMaximumFractionDigits(0);
System.out.println(cnf.format(48000)); // prints $48,000
在您的方法中实现:
NumberFormat cnf = NumberFormat.getCurrencyInstance(Locale.US);
String employee = name + ", " + iD +
", " + hireDate +
", " + cnf.format(AnnualSal) +
", " + cnf.format(ProdBonus);
答案 1 :(得分:1)
我可以在setMethods中执行此操作吗?
是的,你可以,但你不想。请相信我。
通常,您将原始值(int,double,float)保留在类中,并在get方法中对其进行格式化。这允许您以不同的方式格式化您的类输出以满足不同的需求。