'Careful! any evalf of polar numbers is flaky'

def _eval_evalf(self, prec):

    from sympy import im, pi, re
    i = im(self.args[0])
    try:
        bad = ((i <= (- pi)) or (i > pi))
    except TypeError:
        bad = True
    if bad:
        return self
    res = exp(self.args[0])._eval_evalf(prec)
    if ((i > 0) and (im(res) < 0)):
        return re(res)
    return res
