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