Question: Redundant 1. with evalf

I noticed the following behaviour in Maple 16:

x1 := (a)^(b):
eval(x1,[a=103/100]):
evalf[3](%);

                                 b
                             1.03
x2 := -(a)^(b):
eval(x2,[a=103/100]):
evalf[3](%);
                                   b
                           -1. 1.03

 

Since -1. 1.03^b = -1.03^b, I view the multiplication by 1. as redundant. Applying simplify(%) doesn't help, but my question here is not so much how to eliminate the extra 1. but whether this is EXPECTED and DESIRABLE behaviour or rather BUGGY behaviour.

One rationale would be that evalf views the minus sign as multiplication by -1 and then prints its thought process. But if so, why this?

evalf(1*2);
                               2.
evalf(-1*2);
                              -2.

You'd expect to get: -1. 2.  instead...   So is this a bug? and, if not, is it desirable?

Please Wait...