class ReeNumber::NumberToRounded

def call(number, **opts)

def call(number, **opts)
  options = DEFAULTS.merge(opts)
  rounded_number = round_helper(
    number, 
    **slice(
      options, 
      [:precision, :significant, :round_mode]
    )
  )
  if precision = options[:precision]
    if options[:significant] && precision > 0
      digits = digit_count(rounded_number)
      precision -= digits
      precision = 0 if precision < 0
    end
    formatted_string = 
      if rounded_number.finite?
        s = rounded_number.to_s("F")
        a, b = s.to_s.split(".", 2)
        if precision != 0
          b << "0" * precision
          a << "."
          a << b[0, precision]
        end
        a
      else 
        "%f" % rounded_number
      end
  else 
    formatted_string = rounded_number
  end
  delimited_number = number_to_delimited(formatted_string, **slice(options, [:separator, :delimiter]))
  options[:strip_insignificant_zeros] ? format_number(delimited_number) : delimited_number
end

def format_number(number)

def format_number(number)
  escaped_separator = Regexp.escape(".")
  number.sub(/(#{escaped_separator})(\d*[1-9])?0+\z/, '\1\2').sub(/#{escaped_separator}\z/, "")      
end