我是java dev中的新手,所以这可能是一个微不足道的问题:
double u130 = (1 / 30);
double q1 = Math.pow(1.025, u130);
q1等于1.0,但应该是1.0008234259155
u130 = 0.0也错了。
我的理解是双倍的小数位,所以问题在哪里?
顺便说一下,我在Android设备上测试,这应该是一个限制?!
由于
答案 0 :(得分:5)
1 / 30
是 euclidian分部,因此结果为0
(int
)。
相反,您需要真正的部门:
double u130 = 1. / 30;
double q1 = Math.pow(1.025, u130);
答案 1 :(得分:0)
这可以解决您的问题:
double u130 = (1 / (double)30);
double q1 = Math.pow(1.025, u130);