0

我有这个功能,我试图获取所有计算的列表。

f(x) = (100)(1.1)^X

我如何在Java中计算出来。我尝试了一个 for 循环来获取 x 的值和 y 的最终结果,但这不起作用。可能是我的代码在里面。我试图得到 1.1 的指数和乘以 100,这是正确的吗?

for(int i = 1; i<=15; i++){
     int expcalc = (int) Math.pow(1.1, i);
     int finalcalc = price * expcalc;
     System.out.println(" " + finalcalc);
}

我在这里做错了什么?

4

2 回答 2

6

你为什么将结果转换为int? 这将使所有内容都超过小数点。声明expcalcfinalcalc改为double获取准确的结果。

double expcalc = Math.pow(1.1, i);
double finalcalc = price * expcalc;
于 2013-05-02T22:40:49.567 回答
0

如果您使用 pow() 和十进制值,请使用BigDecimal ,特别是在金钱上

假设你的解释是正确的,

BigDecimal price = new BigDecimal("0.0"); //change this value to your price
for(int i = 1; i<=15; i++){
    BigDecimal expcalc = new BigDecimal("1.1").pow(i);
    BigDecimal finalcalc = price.multiply(expcalc);
    System.out.println(" " + finalcalc);
}

避免在货币计算中使用双精度/浮点数。

于 2013-05-03T02:00:36.477 回答