class BSON::Decimal128::Builder::ToString

def create_string

def create_string
  if use_scientific_notation?
    exp_pos_sign = exponent < 0 ? '' : '+'
    if significand.length > 1
      str = "#{significand[0]}.#{significand[1..-1]}E#{exp_pos_sign}#{scientific_exponent}"
    else
      str = "#{significand}E#{exp_pos_sign}#{scientific_exponent}"
    end
  elsif exponent < 0
    if significand.length > exponent.abs
      decimal_point_index = significand.length - exponent.abs
      str = "#{significand[0..decimal_point_index-1]}.#{significand[decimal_point_index..-1]}"
    else
      left_zero_pad = (exponent + significand.length).abs
      str = "0.#{'0' * left_zero_pad}#{significand}"
    end
  end
  str || significand
end