1
public class test {
  public static void main(String[] args) {
   int total = 2;
   int rn = 1;
   double rnp = (rn / total) * 100;
   System.out.println(rnp);
 }
}

なぜ50.0ではなく0.0を出力するのですか?

https://www.google.com/search?q=100*(1%2F2)&aq=f&oq=100*(1%2F2)

4

4 に答える 4

7

除算は分数の概念のない整数空間で発生します。次のようなものが必要です

double rnp = (rn / (double) total) * 100
于 2013-03-26T23:05:43.100 に答える
2

ここで整数除算を呼び出しています

(rn / total)

整数の除算はゼロに向かって丸められます。

代わりにこれを試してください:

double rnp = ((double)rn / total) * 100;
于 2013-03-26T23:06:18.053 に答える
0

Javaや他のほとんどのプログラミング言語では、2つの整数を除算すると、結果も整数になります。残りは破棄されます。したがって、を1 / 2返します0floatまたはのdouble値を返したい場合は、のようなことをする必要があります。1 * 1.0 / 2これは。を返し0.5ます。整数をdoubleまたはfloatで乗算または除算すると、その形式に変換されます。

于 2013-03-26T23:08:05.797 に答える
0
public class test
{
  public static void main(String[] args) 
  {
   int total = 2;
   int rn = 1;
   double rnp = (rn / (float)total) * 100;
   System.out.println(rnp);
 }
}
于 2013-03-26T23:08:41.827 に答える