Quote: "So, obviously DBP doesn't do any kind of implicit up or down casting"
Yes it does - you are just expecting it in the wrong place. DBPro casts when it needs to as it evaluates the expression.
z# = a / b
... will do an integer division of a and b, and only then cast it to a float to store the value.
z# = a / (b + 0.0)
... will convert b to a float to do the addition and give a float result. Then a will be converted to a float to do the division. Then the result will be stored in z#.
The same result can be gotten using
z# = (a + 0.0) / b
You have to be careful where you force the up-cast though.
z# = (a / b) + 0.0
... will do the integer division, then cast the result to a float to do the addition.