class_docstr: Checker used for float fields.  Performs type-check and range check.
  
  Values exceeding a 32-bit float will be converted to inf/-inf.
class_docstr_tok: ["Checker","used","for","float","fields",".","Performs","type-check","and","range","check",".","Values","exceeding","a","32-bit","float","will","be","converted","to","inf\/-inf","."]
docstr: Check and convert proposed_value to float.
code: def CheckValue(self, proposed_value):
      """Check and convert proposed_value to float."""
      if not isinstance(proposed_value, numbers.Real):
          message = (
              "%.1024r has type %s, but expected one of: numbers.Real"
              % (proposed_value, type(proposed_value))
          )
          raise TypeError(message)
      converted_value = float(proposed_value)
      # This inf rounding matches the C++ proto SafeDoubleToFloat logic.
      if converted_value > _FLOAT_MAX:
          return _INF
      if converted_value < _FLOAT_MIN:
          return _NEG_INF
  
      return TruncateToFourByteFloat(converted_value)
  
imports: import numbers
  import six
  from google.protobuf.internal import api_implementation
  from google.protobuf.internal import decoder
  from google.protobuf.internal import encoder
  from google.protobuf.internal import wire_format
  from google.protobuf import descriptor
label_desc: Use image node_id 1 for calling the FloatValueChecker obj's underlying member method code with example usage: obj.CheckValue(proposed_value) and returns: TruncateToFourByteFloat, _INF, _NEG_INF