我正在编写一个程序,使用 seam 和一个 SQL 数据库来存储有关员工的信息。有人告诉我将工资以整数形式存储在数据库中。当用户输入工资时,它被存储为一个字符串,当我为员工对象使用一个 setter 时,它把它变成一个 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
如果存储为美分数,则将其格式化为 afloat
然后除以 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 回答