There appears to be an inconsistency in the documentation of `rat' and
`keepfloat' and how they work in practice.
Personally, I prefer the documented behaviour. Leo.
--------------------
(%i1) ?? keepfloat;
-- Option variable: keepfloat
Default value: `false'
When `keepfloat' is `true', prevents floating point numbers from
being rationalized when expressions which contain them are
converted to canonical rational expression (CRE) form.
(%o1) true
(%i2) keepfloat:true$ display2d:false$
(%i4) solve(4.5*x=0.77, x);
`rat' replaced -0.77 by -77/100 = -0.77
`rat' replaced 4.5 by 9/2 = 4.5
(%o4) [x = 77/450]
(%i5) ? rat;
-- Function: rat (<expr>)
-- Function: rat (<expr>, <x_1>, ..., <x_n>)
`keepfloat' if `true' prevents floating point numbers from being
converted to rational numbers.
(%i6) build_info();
Maxima version: 5.17.1
Maxima build date: 23:0 3/15/2009
host type: i686-pc-linux-gnu
lisp-implementation-type: CLISP
lisp-implementation-version: 2.44.1 (2008-02-23) (built 3427349244)
(memory 3446146824)
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.