Do I have to convert everything to real to do this math?
No — of course, you can multiply the integer by float and you don't need any conversion, because the integer will be automatically converted to float before multiplication. The problem
is only that the result of such a multiplication will be float, which cannot be assigned to an integer without conversion.
Therefore, either use a function that converts a floating point result to an integer (such as
Round), or overwrite the operator.