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に「$」を追加しましたが、最後の2つのdoubleを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 に答える