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)
10% / 10% == 100%? That seems odd. Maybe it makes more sense to return a Numeric? It just equals 1, which I realize can be equated to a value of 100% but seems odd return % in this case.