Oh, I totally misunderstood this, then. I think this is pretty hard to understand.

Is this really necessary? Can't you set the maximum length to BigDecimal::INFINITY?