2013年4月8日月曜日

c++ 整数同士で割り算(除算)を行うと結果がゼロになっちゃう

どうも、俺@仕事中です。

C言語またはc++で整数同士の割り算を行った場合、
int a = 3;
int b = 5;
float z = a/b;
変数zの結果が0(ゼロ)になっちゃう!

こういう場合は

float z = (float)a/b;

のように、変数a(または変数b どちらでも)をfloat型またはdouble型でキャストしてやればOKです。
なぜなら、a/bはこの場合3/5 = 0...3 という結果になり、それがint同士で除算しているため
コンパイラに答えが0(ゼロ)と判断されてしまうからです。

以上でぇぇえぇっぇす。

0 件のコメント: