Hi Ceccon.
No, input is already an Int32.
I mean you to change calculation. Your last commented line //OA1=... was wrong, because:
It seems you want to convert as input an Int32 i.e. in the range -2^(32-1) to 2^(32-1)-1 to obtain as output a float32 range of -10.0 to +10.0
Thus (in your screen shot) an input of -2147407768 would match with a -9,999646656 output
The principle is to apply only one formulae, something like:
output= min_output+(input-min_input)/(max_input-min_input)*(max_output-min_output)
OA1 = -10+(val-(-21474883648))/(2147483647-(-21474883648))*(10.0-(-10.0));
finally:
OA1 = range_low + (I1-(-21474883648))/4294967295 * (range_high-range_low);
/Bruno