Make zoom() code a little nicer

Having zoom(int) do something different to zoom(qreal) is not good. Also, existing code is one of the more esoteric methods of computing an exponent that I have seen..