No, I don't think it's a bug - it's correct behaviour.

An awful lot of scripts out there use integer math for calculation. If the default behaviour was floating point math then these existing scripts would all be broken.

Keeping the default behaviour as integer means that existing scripts will continue to work without modification. If you want the number to be treated as floating point then you have to declare it, or cast it.