It's certainly not an engine failure :)
If both of your division operands are integers, engine will perform integer division, truncating away fractional part of the result. If at least one operand is floating point, the division will be proper floating point division. So it's important how you specify your numeric literals:
100 - integer literal
100.0 - floating point literal
100/40 - result is 2
100.0/40.0 - result is 2.5