質問です。
double の変数 d を四捨五入して long の変数 l に代入するにはどうしたら
よいでしょうか?

long l = (long) d; だと小数点以下が切り捨てられてしまいます。
丸め専用のメソッドがどこかにあると思ったのですが、見つからず、
現在のところ
long l = new BigDecimal(d).divide(new BigDecimal(1.0), 0, BigDecimal.ROUND_HALF_EVEN).longValue();
という回りくどいやり方をしております。

こういうやり方が良い、というアドバイスがありましたらお教えください。