[英]Getting wrong value when multiplying
我正在編寫一個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
的冪運算符。 這是一個XOR運算符。
您應該為此使用Math.pow(10, 3)
:
f = (int)(((mv*ptv*txtv)/Math.pow(10, 3))*100);
需要將類型轉換為int
,因為Math.pow
的結果是double
類型。
^不是指數運算符。 它是一個xor運算符。 你需要做到
f = (((mv*ptv*txtv)/(10*10*10))*100);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.