I've always thought that floats should be accompanied with a precision value specifying the number of significant digits. Ideally updated by hardware in the same operation.
All floating point code has subtle bugs if you don't track error accumulation.