Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私が次のような状態にある場合;
int a = 1; int b = 3; if ((a/b) > 0) ...
中間結果 (a/b) は float (0.33) または int (丸めのため 0) のように脅かされていますか? 私は VB6 の世界から来ましたが、2 つの整数を除算すると中間結果も整数になるため (そして 0 > 0 = false)、この条件は false と評価されます。
2 つの整数を除算すると、整数除算になります。つまり、結果は切り捨てられます。この場合、常に 0 と評価されます。結果を浮動小数点値にしたい場合は、単純に int を float で割るか、float を int で割るか、2 つの float で割ることができます。(少なくとも 1 つのオペランドを浮動小数点型にキャストすることで、同様の動作を実現できます。)