2016-06-13 2 views
0

私は二重の値を印刷するとき、私はアンドロイドのスタジオでこの奇妙な問題を抱えているように1/4など:Androidのダブル機能していない

double test = 1/4 
System.out.println(test); 

//the output is 0.0 

とき、私はスコアを計算しています((correct_ans/MAXIMUM_CHANCE) * RANGE)また、答えを0.0として計算します。ここで、correct_ans、MAXIMUM_CHANCE、およびRANGEはすべて整数です。これは、 "+"スコアを使ってテキストビューに表示されます。何が間違っているのですか?

+1

あなたが1.0/4.0のようなものを試してみましたか? @SamMが正しければ、整数除算を行った後にダブル変換を行っている可能性があります。 –

+0

1/4は整数除算で、結果は0になり、double(0.0)に変換されます。数字のいずれかをダブルに変更すると、あなたは大丈夫になるでしょう – Abhijit

+0

は、唯一の解決策を2回キャストしていますが、 –

答えて

0

Javaのルールを1として分割器は二重/フロートであるので、試みなければならない -

double test = 1/4.0; 
System.out.println(test); 

回答

0.25 
0

5月2日= 2

4月3日= 1になり

3/3 = 1

2/4 = 0

int値/ INT値= int値

ので、1/4 = 0

1/4 =(INT)0.25 = 0

あなたができるのでこのことによって解決する:

double値/ int値= double値を

1.0/4

OR

1/4.0

OR

1.0/4.0

関連する問題