One of the nice things that Common Lisp gives you, though, is a rational
data type, so you can actually do a whole lot of the arithmetic without
losing anything to machine representation issues. You might have had a
specific reason for using 0.5 and 0.2 in your original example, but if
you really mean 5/10 and 2/10, you can simply do:
CL-USER 1 > (- 5/10 2/10)
3/10
CL-USER 2 > (- 5/10 3/10)
1/5
This may or may not be appropriate, depending on what you're doing, but
I've found that working with rationals is often preferable (for my own
use, YMMV).
//JT