0

我正在编写一个 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

4

2 回答 2

12

^不是 中的幂运算符Java。这是一个XOR运算符。

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

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

需要类型转换int为,因为Math.powisdouble类型。

于 2013-08-20T15:51:14.037 回答
3

^ 不是指数运算符。它是一个异或运算符。你需要做到

f = (((mv*ptv*txtv)/(10*10*10))*100);
于 2013-08-20T15:51:51.550 回答