cdm/src/main/java/ucar/ma2/ArrayStructure.java
public float convertScalarFloat(int recnum, StructureMembers.Member m) {
    if (m.getDataType() == DataType.FLOAT) return getScalarFloat(recnum, m);
    if (m.getDataType() == DataType.DOUBLE) return (float) getScalarDouble(recnum, m);
    Object o = getScalarObject(recnum, m);
    if (o instanceof Number) return ((Number) o).floatValue();
    throw new ForbiddenConversionException("Type is " + m.getDataType() + ", not convertible to float");
  }
public float convertScalarFloat(int recnum, StructureMembers.Member m) {
    if (m.getDataType() == DataType.FLOAT) return getScalarFloat(recnum, m);
    if (m.getDataType() == DataType.DOUBLE) return (float) getScalarDouble(recnum, m);
    Object o = getScalarObject(recnum, m);
    if (o instanceof Number) return ((Number) o).floatValue();
    throw new ForbiddenConversionException("Type is " + m.getDataType() + ", not convertible to float");
  }
Get scalar value as a float, with conversion as needed. Underlying type must be convertible to float.

@param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();
@param m      member Variable.
@return scalar float value
@throws ForbiddenConversionException if not convertible to float.