JHEnt:
So the constant is "understood" to be 2000 by any device programmed to read the standard and the reading device will perform the conversion after it recieveds the interger value?
Yes.
Value From Device / 2000.0 = Value As A Human Would Understand It
(uint38_t)((Value As A Human Would Understand It * 2000.0) + 0.5) = Value As Device Would Understand It
For the function do I pass the 8 bytes in like this?
No...
conv(&arrayName[0]);
So will this pass 8 bytes into the function and return the modified 4 bytes to array 0-3 to be read as a float type?
Looks like it.
I don't see how float f can be read out of the function.
The union is the key.