int x = 5; int y = 100; double z = (double) (x / y);
上記のようにdoubleを用いて演算を行う場合、intでx/yを演算し 小数部が切り捨てられた値をdoubleにキャストするため、 小数部を切り捨てずに演算することが出来ない。
小数部を切り捨てずに演算する場合、すなわちdoubleにキャストされた状態で 演算を行う場合には予めint型の値をdoubleにキャストしてから演算を行う。
演算で用いる両方の数値をdoubleにキャストする必要はなく、 片方の数値のみでもdoubleにキャストされていれば演算時に算術変換によって もう片方の数値もdoubleにキャストされる。
上記の例であれば
int x = 5; int y = 100; double z = (double) x / y;
として、xのみをdoubleにキャストするだけで小数部が切り捨てられていない結果を得られる。