The result of dividing one integer by another in C/C++ is integral, regardless of what data type you stuff the result into.
You want floating point division. If either the divisor or dividend are floating point, regardless of the other, the calculation is performed using floating point math.
there are a couple of ways to do this. You could cast the integers to doubles before you divide them... or apply them to 'Field' one at a time (which is what I'd probably do):