整数同士の除算は結果も整数となる。なので、結果が1未満の場合、全て0になってしまう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int i = 1; int j = 10; int ans = i / j; //NG:除算結果が整数に代入されるため Console.WriteLine(ans); //0 int i2 = 1; int j2 = 10; double ans2 = i2 / j2; //NG:1 / 10 = 0 が計算されたあとい代入されるため Console.WriteLine(ans2); //0 double i3 = 1; double j3 = 10; double ans3 = i3 / j3; //OK:小数同士で除算するので、代入される値も小数になる Console.WriteLine(ans3); //0.1 |
小数で結果が欲しい場合は、割られる数(ここだったら1)が小数だと認識されないといけない。
j3がintでも結果は0.1になる。