code: def round(value, decimal=None, digits=None, places=None):
      
      value = float(value)
      if value == 0.0:
          return "0"
  
      digits = coalesce(digits, places)
      if digits != None:
          left_of_decimal = int(math.ceil(math.log10(abs(value))))
          decimal = digits - left_of_decimal
  
      right_of_decimal = max(decimal, 0)
      format = "{:." + text_type(right_of_decimal) + "f}"
      return format.format(_round(value, decimal))
docs: :param value:  THE VALUE TO ROUND
      :param decimal: NUMBER OF DECIMAL PLACES TO ROUND (NEGATIVE IS LEFT-OF-DECIMAL)
      :param digits: ROUND TO SIGNIFICANT NUMBER OF digits
      :param places: SAME AS digits
      :return: