That result is correct, within the constraints of single-precision floating point. Floats, in binary, have only so many bits to represent a given decimal fraction. By default, Common Lisp reads SINGLE-FLOAT format when you type floats. If you want DOUBLE-FLOAT format, then either set *READ-DEFAULT-FLOAT-FORMAT* or use an exponent marker when specifying the float, like this: