>Why the arbitrary length of 20? The article suggests the workaround of changing it to a string and back to numeric, so how about just
ROUND( VAL( TRANSFORM(tnNumber)), tnDecimals)
TRANSFORM function in turn has a bug.
According to KB Article Q247494 "You might see that the results of the TRANSFORM() function appear off by approximately .0000000000001. This behavior may occur when COMPATIBLE is OFF."
--sb--