Fix type casting to Decimal from Float with large precision

When I define large precision column at RDBMS,
I assign float value, raises ArgumentError (precision too large).

Cause of this probrem:
- `precision` is derived from database column definition.
- If `precision` is larger than `Float::DIG + 1`, `BigDecimal.new` raises ArgumentError

I think it is inconvenient.

this commit fixes it.
Can we do this in the constructor instead?

```ruby
def initialize(*)
  super

  if precision > ::Float::DIG + 1
    @precision = ::Float::DIG + 1
  end
```