豊福です。

In [ruby-dev:36695]
> y = BigDecimal("1125899906842624")
> prec = y.precs[0]
> assert_equal(true, (x.sqrt(100) - y).abs < BigDecimal("1E#{prec-100}"))
> assert_equal(true, (x.sqrt(200) - y).abs < BigDecimal("1E#{prec-200}"))
> assert_equal(true, (x.sqrt(300) - y).abs < BigDecimal("1E#{prec-300}"))

  すみません。

  y = BigDecimal("1125899906842624")
  e = y.exponent
  assert_equal(true, (x.sqrt(100) - y).abs < BigDecimal("1E#{e-100}"))
  assert_equal(true, (x.sqrt(200) - y).abs < BigDecimal("1E#{e-200}"))
  assert_equal(true, (x.sqrt(300) - y).abs < BigDecimal("1E#{e-300}"))

であるべきでした。
この場合たまたま整数だったので prec が e と一致してましたが。
---