0

私は、seamとSQLデータベースを使用して、従業員に関する情報を格納するプログラムを作成しています。支払いをintとしてデータベースに保存するように言われました。ユーザーが支払いを入力すると、文字列として保存され、従業員オブジェクトにセッターを使用すると、それがintに変換されます。私の問題は、小数点を元に戻して文字列に戻す方法がわからないことです。何か案は?

4

4 に答える 4

3

一般的に間違いなく機能する最も簡単なことはおそらく

BigDecimal.valueOf(cents).scaleByPowerOfTen(-2).toString();

long(これには、ピンチで、またはBigIntegerセント数に一般化するという利点があります。)

間違いなく機能する他の解決策は、少し複雑ですが、次のようなものになります。

return Integer.toString(cents / 100)
     + "."
     + new DecimalFormat("00").format(cents % 100);
于 2012-05-31T13:02:49.440 に答える
0

あなたはのようなものを使うことができます。

int priceInCents = ...
String price = String.format("%.2f", priceInCents / 100.0);
于 2012-05-31T13:03:08.687 に答える
0

セント数として保存されている場合は、aにフォーマットしてから、float100で割ります。

于 2012-05-31T12:59:42.970 に答える
0

このようなものがあなたが探しているものでしょうか?

class Currency {
  int cents;

  public Currency(int cents) {
    this.cents = cents;
  }

  public Currency(String cents) {
    this(Integer.parseInt(cents));
  }

  public int getCents(){
    return cents;
  }

  public double getValue(){
    return cents/100.0d;
  }

  private static final DecimalFormat o = new DecimalFormat("0");
  private static final DecimalFormat oo = new DecimalFormat("00");

  @Override
  public String toString() {
    return o.format(cents / 100) + "." + oo.format(cents % 100);
  }
}
于 2012-05-31T13:22:05.087 に答える