Floating point errors should be avoided when handling/manipulating QueryValue and DecimalValue objects. One situation where such errors frequently show is when adding an uncertainty margin to a base amount to comput the upper and lower bounds of a quantity.
The errors are introduced because DecimalMath, a class that implements basic arithmetical operation on DecimalValue objects, uses float numbers to perform the calculations.
To avoid this, we could use the bcmath library, if it is installed.
Also, smart rounding rules could be employed to reduce the ill effects of floating point errors.