我正在编写一个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
答案 0 :(得分:12)
^
不是Java
中的权力运算符。这是一个XOR运营商。
您应该使用Math.pow(10, 3)
:
f = (int)(((mv*ptv*txtv)/Math.pow(10, 3))*100);
由于int
为Math.pow
类型,因此需要对double
进行类型转换。
答案 1 :(得分:3)
^不是指数运算符。它是一个xor运算符。你需要做到这一点
f = (((mv*ptv*txtv)/(10*10*10))*100);