If the computer answer is a floating point number, the tolerance should not be zero. Computers can only approximate computations involving real numbers. For instance, a computer's [decimal] answer to the simple problem [ 1/3] is "0.33333333333333331". It should be an infinite series of 3's, and there certainly shouldn't be a "1" in the answer, but no computer can represent an infinitely long, infinitely detailed real number. Therefore, for any problem where the answer is not an integer, you need to allow a tolerance factor, or the students will find it nearly impossible to exactly match the computer's idea of the answer. You may find the default tolerance too large for some problems, so adjust as appropriate.
There are three kinds of tolerance. For some answer A and a tolerance T,
Some care is necessary when setting the display format of the computer answer. Before testing the tolerance, LON-CAPA converts the computer answer, as generated in the script block, according to the format attribute in the numericalresponse tag.
Next, the formatted comptuer answer is "graded" relative to the significant figures parameter, if it is set (see section . If that test was passed, then a numerical comparison of the Computer's answer is made with the range of values:
($computerAnswer - $tolerance) < $formattedcomputerAnswer < ($computerAnswer + $tolerance)
If the $formattedcomputerAnswer satisfies the permitted range, then "correct" is returned for the computer answer. It is good idea to test multiple randomizations to make sure that your tolerance is compatible with the display format.