>>661
> int b = 1%1.0;
がdoubleに余剰演算かけようとしてエラーになってるんじゃないの?
式の中での暗黙の型変換なんだから1の方がdoubleに変換されて
> int b = 1.0%1.0;
になると思うんだが。

>>671
それは代入時の暗黙の型変換なんだから左辺側に変換される。