I believe 2^0.5 --> 1.41... is the behavior we want. The
principle is that any float in an expression is should
convert all numbers in that expression to floats
(but this doesn't always work).
For your other question, maybe you want to set the option
variable keepfloat to true
(%i1) display2d : false$
(%i2) x^(2^0.5);
(%o2) x^1.414213562373095
(%i3) ratsimp(%),keepfloat : true;
(%o3) x^1.414213562373095
Agreed, 8119/5741 is a terrible approximation to sqrt(2).
But this can be changed too
(%i5) ratepsilon : 1.0e-18;
(%o5) 1.0E-18
(%i6) x^(2^0.5);
(%o6) x^1.414213562373095
(%i7) ratsimp(%);
`rat' replaced 1.414213562373095 by 131836323//93222358 =
1.414213562373095
(%o7) x^(131836323/93222358)
Regards,
Barton