<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def DEFINE_float( # pylint: disable=invalid-name,redefined-builtin name, default, help, lower_bound=None, upper_bound=None, flag_values=_flagvalues.FLAGS, **args):
 # pylint: disable=invalid-name """Registers a flag whose value must be a float. If lower_bound or upper_bound are set, then this flag must be within the given range. Args: name: str, the flag name. default: float|str|None, the default value of the flag. help: str, the help message. lower_bound: float, min value of the flag. upper_bound: float, max value of the flag. flag_values: FlagValues, the FlagValues instance with which the flag will be registered. This should almost never need to be overridden. **args: dict, the extra keyword args that are passed to DEFINE. """

  parser = _argument_parser.FloatParser(lower_bound, upper_bound)
  serializer = _argument_parser.ArgumentSerializer()
  DEFINE(parser, name, default, help, flag_values, serializer, **args)
  _register_bounds_validator_if_needed(parser, name, flag_values=flag_values)