MATLAB: 1.1 – int32(1) = 0

MATLABprecedencetype

The calculation: 1.1 – int32(1) results in 0. Some experimentation tells me that: 1.1 – double(int32(1)) results in the expected 0.1
I would have expected the combination of a double and an int32 to result in a double. Instead it appears to be an int32. Is this the defined behavior? Can anyone point me to a document showing data type precedence in Matlab.
Thanks

Best Answer

E.g., see here:
"Arithmetic operations that involve both integers and floating-point always result in an integer data type. MATLAB rounds the result, when necessary, according to the default rounding algorithm."
And, yes, this is not the way many other languages (e.g., Fortran, C/C++, etc) do this.