If xfloat(e) doesn't evaluate to a float, I doubt that
any combination of numer, float, or ... will evaluate the
expression to a float.
(C1) xfloat(e) := scanmap('float, rectform(e))$
(C2) xfloat(sqrt(1+%i) - sqrt(1-%i));
(D2) .9101797211244547 %I
(C3) xfloat(exp(exp(1)));
(D3) 15.15426224147926
Here is the same trick for bfloat. I think scanmap isn't
needed---most likely, xbfloat(e) := bfloat(rectform(e)) will
work as well.
(C4) xbfloat(e) := scanmap('bfloat,rectform(e))$
(C5) xbfloat(sqrt(1+%i)-sqrt(1-%i));
(D5) 9.101797211244547B-1 %I
To change the number of digits in a big float, assign a new value to
fpprec.
(C6) fpprec : 25$
(C7) xbfloat(sqrt(1+%i)-sqrt(1-%i));
(D7) 9.101797211244546826087155B-1 %I
(C8)
Barton