obj.A=0でエラーになるの?
てっきり(obj.B + obj.C)=0でエラーになるのかと思った。

「(decimal)obj.A / (decimal)(obj.B + obj.C)」をメソッドにして
そのメソッドの戻り値でソートするんじゃだめ?
それならそのメソッド内で0の場合のことも考えられると思うのだが

ハズレっすか?