Shouldn't Blitz use different methods depending on whether the arguments are floats or ints?
I agree that this approach makes sense. AFAIK, it should be possible for the "^" function to determine whether both parameters are integers and, if so, use an integer-type solution (for/next multiplication?) rather than a double-type one. The last-minute conversion to Double (needed since a return can only be one type) would presumably avoid the ".99999" problem (if not, perhaps something like 0.00000001 could be added if parameters were Integers?).