Treat ints and floats differently

Lets it keep to the correct math when dealing with floats, and treats ints as just (int f => f/100)
You know what, I think maybe this should also return a Numeric. 50% * 10 would eq 5. Technically again that equates to 500% but doesn't make much sense as a return value. I think typically when you perform operations with a percent and another numeric, it probably doesn't make sense to return a percent.