キャストの文字(doubleなど)を付ける場所によって
求めている結果と違う計算結果になりそうなので注意。


int a=100;
int b=200;
double num = (double)((a+b)/1000))

num =0.0


②int a=100;
int b=200;
double num = ((double)a+(double)b)/1000)

num =0.3

上記の書き方だと求めているのは恐らく②の結果だと思われます。
おのおのキャストしてから計算するほうが間違いなさそ。