### LON-CAPA Help

A **tolerance** parameter determines how closely
the system will require the student's answer to be in order to count it correct.
The tolerance will default to zero if it is not defined.
The tolerance parameter should always be defined for a numerical problem
unless you are certain only integer answers are generated from your script and
you want students to reply with exactly that integer.
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*,

- an
**Absolute** tolerance
will take anything in the range *A*±*T*. So if *A*=10 and *T*=2, then
anything between 8 and 12 is acceptable.
Any number in the tolerance field *without* a **%** symbol is
an absolute tolerance.
- a
**Relative** tolerance
will take anything in the range *A*±*aT*, where *T* is interpreted
as a percentage/100. Any number in the tolerance field *followed by* a **%**
symbol is a relative tolerance. For example, *a*=10 and *t*=10% will accept
anything between 9 and 11.
- a tolerance that is a calculated variable (identified by $ sign as
the first character). For example, if an answer is $
*X*,and for a student
possible values range from -$*X*1 to +$*X*1, you could choose *T* = $*tolerance* = $2*X*1/100; acceptable answers would then be from
$*X*-$*tolerance* to $*X*+$*tolerance*. (This is especially useful when answers
close to zero are possible for some students)

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.