使用整数作为货币

时间:2012-05-31 12:55:50

标签: java int seam currency

我正在编写一个程序,使用seam和SQL数据库来存储有关员工的信息。我被告知将付款存储在数据库中。当用户输入pay时,它将存储为String,当我使用setter作为employee对象时,它将其转换为int。我的问题是我无法弄清楚如何将它存回到字符串中并返回小数位。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

肯定一般工作的最简单的事情可能是

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

(这有利于在紧要关头推广到longBigInteger个分数。)

另一种肯定会起作用的解决方案,虽然它稍微复杂一点,但却会出现这样的问题。

return Integer.toString(cents / 100)
     + "."
     + new DecimalFormat("00").format(cents % 100);

答案 1 :(得分:0)

如果将其存储为美分数,请将其格式化为float,然后将其除以100。

答案 2 :(得分:0)

您可以使用类似的内容。

int priceInCents = ...
String price = String.format("%.2f", priceInCents / 100.0);

答案 3 :(得分: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);
  }
}