CRM-188: Fix Floating Point Precision Comparison Exception
Under certain circumstances, floating point comparison between set and
calculated values may fail, even if they should be equal. This is due to the
way floating point values are represented internally in binary form. To avoid
this problem, comparison needs to be made using an expected precision below
which compared values may be treated as equal. Implemented precision of 0.001
and used it to check the difference between both values is less.