For example, could one use a real number as an MX weight? Is there a limit to how many decimal places an MX weight may have?
MX weight/preference/distance is transmitted as 16 bit integer (from 0 to 65535=0xFFFF).
I do not remember seeing use of MX preferences above 1_000.