乘以时得到错误的值

时间:2013-08-20 15:48:57

标签: java android algorithm math

我正在编写一个Android应用程序,我有一个算法来计算几个变量中的一些分数但是在计算时,我得到了错误的答案:

当我将mv,ptv,txtv设置为10时,我得到10300,而我应该得到100.当我将它设置为1时,我得到300作为答案。

int f;
f = (((mv*ptv*txtv)/10^3)*100);
int finalScr = f;
TextView scoreView = (TextView)findViewById(R.id.textView3);
scoreView.setText(Integer.toString(finalScr));

所有变量都是整数,所有变量的最大值为10,最小值为1.

请帮助..我不认为我在数学上是错误的:P

2 个答案:

答案 0 :(得分:12)

^不是Java中的权力运算符。这是一个XOR运营商。

您应该使用Math.pow(10, 3)

f = (int)(((mv*ptv*txtv)/Math.pow(10, 3))*100);

由于intMath.pow类型,因此需要对double进行类型转换。

答案 1 :(得分:3)

^不是指数运算符。它是一个xor运算符。你需要做到这一点

f = (((mv*ptv*txtv)/(10*10*10))*100);