Quote: "I don't know whether this is a bug or not, but mod does appear to accept floats in other languages."
From the Visual Basic help file
The modulus, or remainder, operator divides number1 by number2 (
rounding floating-point numbers to integers) and returns only the remainder as result. For example, in the following expression, A (result) equals 5.
A = 19 Mod 6.7
Usually, the data type of result is a Byte, Byte variant,Integer, Integer variant,Long, or Variant containing a Long, regardless of whether or not result is a whole number.