public static Float getFloatValue(@NonNull byte[] value, @FloatFormatType int formatType, @IntRange(from = 0) int offset) {
        if ((offset + getTypeLen(formatType)) > value.length) {
            RxBleLog.w(
                    "Float formatType (0x%x) is longer than remaining bytes (%d) - returning null", formatType, value.length - offset
            );
            return null;
        }

        switch (formatType) {
            case FORMAT_SFLOAT:
                return bytesToFloat(value[offset], value[offset + 1]);

            case FORMAT_FLOAT:
                return bytesToFloat(value[offset],   value[offset + 1],
                        value[offset + 2], value[offset + 3]);
            default:
                RxBleLog.w("Passed an invalid float formatType (0x%x) - returning null", formatType);
                return null;
        }
    }
Return the float value interpreted from the passed byte array.

@param value The byte array from which to interpret value.
@param formatType The format type used to interpret the value.
@param offset Offset at which the float value can be found.
@return The value at a given offset or null if the requested offset exceeds the value size.
rxandroidble/src/main/java/com/polidea/rxandroidble2/helpers/ValueInterpreter.java