2
public String toString() //toString withing Shiftsupervisor class
{
    String employee = name + ", " + iD + ", " + hireDate + ", $" + AnnualSal + ", $" + ProdBonus;
    return employee;
}

主要:

ShiftSupervisor supervisor1 = new ShiftSupervisor("John Smith", "123-A", "11-15-2005", 48000, 6500);

System.out.println(supervisor1);

我已经在我的 toString 中添加了“$”,但我希望它输出最后两个双精度为 48,000 和 6,500 << 添加逗号!

我可以在我的 setMethods 中这样做吗?

4

2 回答 2

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);
于 2013-03-07T20:18:13.513 回答
1

我可以在我的 setMethods 中执行此操作吗?

是的,你可以,但你不想。相信我这个。

通常,您将原始值(int、double、float)保留在类中,并在 get 方法中对其进行格式化。这使您可以根据不同的需求以不同的方式格式化您的类输出。

于 2013-03-07T20:16:37.077 回答