public boolean setValue(int mantissa, int exponent,
							@FloatFormat int formatType, @IntRange(from = 0) int offset) {
		final int len = offset + getTypeLen(formatType);
		if (mValue == null) mValue = new byte[len];
		if (len > mValue.length) return false;

		switch (formatType) {
			case FORMAT_SFLOAT -> {
				mantissa = intToSignedBits(mantissa, 12);
				exponent = intToSignedBits(exponent, 4);
				mValue[offset++] = (byte) (mantissa & 0xFF);
				mValue[offset] = (byte) ((mantissa >> 8) & 0x0F);
				mValue[offset] += (byte) ((exponent & 0x0F) << 4);
			}
			case FORMAT_FLOAT -> {
				mantissa = intToSignedBits(mantissa, 24);
				exponent = intToSignedBits(exponent, 8);
				mValue[offset++] = (byte) (mantissa & 0xFF);
				mValue[offset++] = (byte) ((mantissa >> 8) & 0xFF);
				mValue[offset++] = (byte) ((mantissa >> 16) & 0xFF);
				mValue[offset] += (byte) (exponent & 0xFF);
			}
			default -> {
				return false;
			}
		}

		return true;
	}
Set the locally stored value of this data.
<p>See {@link #setValue(byte[])} for details.

@param mantissa   Mantissa for this data
@param exponent   Exponent value for this data
@param formatType Float format type used to transform the value parameter
@param offset     Offset at which the value should be placed
@return true if the locally stored value has been set
ble/src/main/java/no/nordicsemi/android/ble/data/MutableData.java