BigIntegerとBigDecimalはどちらもjava.lang.Numberを拡張しますが、これは、BigIntegerからNumberまで、次にBigDecimalまでキャストできることを意味するものではありません。
BigDecimalには、BigIntegerを受け取るコンストラクターがあるので、次のことを試してください。
BigDecimal d = new BigDecimal(b);
BigIntegerとBigDecimalはどちらもjava.lang.Numberを拡張しますが、これは、BigIntegerからNumberまで、次にBigDecimalまでキャストできることを意味するものではありません。
BigDecimalには、BigIntegerを受け取るコンストラクターがあるので、次のことを試してください。
BigDecimal d = new BigDecimal(b);