The Maple engine will automatically switch to floating-point arithmetic whenever a symbolic number is multiplied by a float. Unfortunately, this can sometimes lead to unexpected behaviour. For instance,
x := sqrt(4) / ( 2 * 1.5 ); # 0.6666666667
returns a value which is mathematically inexact, but one that is correct within the tolerance set by Digits.
Two commands worth trying, though, are identify() and convert(). For example:
identify(x); # 2/3 convert( x, 'fraction' ); # 2/3
will both return the exact answer.
It should be noted that, generally, the result of using identify() and convert() may not always be correct (e.g. if the floating-point value is not sufficiently close) or expected (e.g. if Maple returns an answer in a different form).
This is related to the issue of Automatic Evaluation of Pi in Float Expressions. As of Maple 2015, Pi is converted to a float whenever adjacent to another float. For instance:
restart; kernelopts( floatPi = true ); 1.0 * Pi; # 3.141592654 kernelopts( floatPi = false ); 1.0 * Pi; # Pi