Java 乘法时得到错误的值

Java 乘法时得到错误的值,java,android,algorithm,math,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(I

我正在编写一个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不是Java中的幂运算符。是接线员

你应该使用Math.pow10,3来表示:

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

需要将Typecast转换为int,因为Math.pow的结果是双重类型

^不是指数运算符。它是一个异或运算符。你必须做到这一点

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

正如答案中所说,你必须使用Math.pow,但你也可以简化你的数学,只需除以10,而不是乘以100。因为10^3=1000和100/1000=1/10。虽然你对这个问题的回答是正确的,但只要suyash srijan使用整数,除以10或除以1k再相乘就不一样了。设mv,ptv为10,txtv为49-在乘以10之前,除以1000应为400,而在不使用乘法器的情况下,除以10应为490