2013-05-02 51 views
0

我有这个函数,我试图得到所有计算的列表。在Java中计算数学函数的值

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); 
} 

我在这里做错了什么?

+1

为什么要将结果截断为整数值?价格在哪里?究竟是什么问题?你没有指定。 – OldProgrammer 2013-05-02 22:42:01

回答

6

你为什么把结果作为int?这将放弃小数点后的所有内容。将expcalcfinalcalc声明为double而不是为了获得准确的结果。

double expcalc = Math.pow(1.1, i); 
double finalcalc = price * expcalc; 
+0

哈哈,谢谢。我真的不知道我怎么没有想到使用双。 – Herith12 2013-05-02 22:50:59

0

使用BigDecimal如果你使用POW()和十进制值,以及特别是在MONEY

假设你的解释是正确的,

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); 
} 

避免使用双/浮在货币计算。