class BSON::Decimal128::Builder::FromString

def clamp(exponent, significand)

def clamp(exponent, significand)
  if exponent > Decimal128::MAX_EXPONENT
    if significand.to_i == 0
      adjust = exponent - Decimal128::MAX_EXPONENT
      significand = '0'
    else
      adjust = [ (exponent - Decimal128::MAX_EXPONENT),
                 Decimal128::MAX_DIGITS_OF_PRECISION - significand.length ].min
      significand << '0'* adjust
    end
    exponent -= adjust
  end
  [ exponent, significand ]
end