# Numbers representation, tolerance and precision

## Integers

WIRIS does calculations in exact mode, and only falls to approximate mode when any decimal number is involved. A decimal number is a number that has a decimal mark. A number without decimal mark is an integer. Examples of exact expressions that are not integer numbers are: $\frac{1}{2}$, $\pi$, $\sqrt{2}$, ...

You can convert an exact expression to approximate by making a simple operation with a decimal number, like multiply by 1.0.

Wiris CAS

CalcMe

Beware that, despite the correct answer beeing an integer, the student can always answer a decimal number close enough, and it will be graded as correct. If you want to force the student to answer an integer, you better set Integer form.

Also note some WIRIS commands sometimes return an exact number and sometimes an approximate one. For example: atan(), integrate(), solve(),... Keep this in mind when programming the algorithm in Variables.

Wiris CAS

CalcMe

## Decimal numbers

A decimal number is a number that has a decimal mark. Decimal numbers are shown using Precision setting, and are compared using Tolerance setting. What is understood as decimal mark depends on the modes General and Quantity.

• General: Decimal mark is exclusively the dot. Decimal mark must be inside the number, not at sides; leading and trailing decimal marks are not allowed.

• Quantity: By default, all dots, commas and apostrophes are understood as decimal marks. Leading and trailing decimal marks are allowed.

## Precision

Precision is the number of significant figures or decimal places of variables shown after calculations. That is, calculations are made internally with full precision, and at the end they are rounded to the set precision. Precision affects the decimal numbers shown in wordings, feedback, and so. Max precision is 15. When rounding, the rule used for tie-breaking is half-up.

Consider the number 12.345

Precision

Rounded to significant figures

Rounded to decimal places

6

12.345

12.345000

5

12.345

12.34500

4

12.35

12.3450

3

12.3

12.345

2

12

12.35

1

12

12.3

Precision is not the allowed deviation between student and correct answers; that is Tolerance. But precision can have a bad impact in the comparison, if set improperly. Precision affects the correct answer, how it's shown to the student, but also the actual value. The student answer will be compared with the correct answer, that has been rounded using precision. If precision number is smaller than tolerance number, then good student answers will probably be graded as bad. That's because if the precision number is small, then the correct answer will be rounded too much, probably outside the tolerance range. So remember to set the precision number always greater than the tolerance number. Also note the precision does relate approximately with the relative tolerance, but does not relate directly to the absolute tolerance. There is a warning about this point.

## Tolerance

Tolerance number is used to compare the student answer and the Correct answer. Denote by $sa$ the student's response, $ca$ the correct answer, and $n$ the tolerance.

### Caution

The tolerance options only apply to decimal numbers! For instance, if the question's answer is 10, we may set 10.0 as the correct answer so that the validation system takes into account the defined tolerance.

### Percent error

The student answer has an $n%$ error margin with respect to the correct answer. An answer will be marked as correct if it satisfies

$\frac{|ca-sa|}{|ca|}\le n·0.01$

For instance, if the correct answer is $12.345$

Percent error

Interval of acceptance

10

$\left[11.1105,13.5795\right]$

1

$\left[12.22155,12.46845\right]$

0.1

$\left[12.332655,12.357345\right]$

0.01

$\left[12.3437655,12.3462345\right]$

### Absolute error

The student answer has a margin of error of $n$. An answer will be marked as correct if it satisfies

$|ca-sa|\le n$

For instance, if the correct answer is $12.345$

Absolute error

Interval of acceptance

1

$\left[11.345,13.345\right]$

0.1

$\left[12.245,12.445\right]$

0.01

$\left[12.335,12.355\right]$

0.001

$\left[12.344,12.346\right]$

### Significant figures

Check that the first $n$ significant figures of student and correct answers are identical. An answer will be marked as correct if it satisfies

$\text{trunc}\left(ca·{10}^{m}\right)=\text{trunc}\left(sa·{10}^{m}\right)$ where $m$ is such that ${10}^{n-1}\le ca·{10}^{m}<{10}^{n}$, and $\text{trunc}$ is the truncation function.

For instance, if the correct answer is $19.586$

Significant figures

20.01

19.6

19.59

19.58

1

2

3

4

### Decimal places

Check that the first $n$ decimal places of student and correct answers are identical. An answer will be marked as correct if it satisfies

$\text{trunc}\left(ca·{10}^{n}\right)=\text{trunc}\left(sa·{10}^{n}\right)$

where $\text{trunc}$ is the truncation function. For instance, if the correct answer is $19.586$

Decimal places

19.6

19.59

19.587

19.586

1

2

3

## Notation

These notations apply only to decimal numbers. Numbers and expressions without a decimal point are exact, so these notations don't apply to them. You can always convert an exact expression to decimal by multiplying by 1.0 , for instance.

### Auto

Auto is the default notation if you use significant figures in the Precision setting. Auto notation chooses the best format for each value type: most numbers are shown without changes, but very big or small ones are shown in scientific notation. Decimal trailing zeros are removed too.

If you use $p$ significant digits as precision, the floating number $x$ will be shown in scientific notation when $\left(||x\right)>{10}^{p}$ or $\left(||x\right)<{10}^{-4}$. Note that this does not apply to integer numbers.

### Decimal

Decimal notation is like Auto but never shows scientific notation. Note that this notation can produce numbers with lots of digits. For example, you will see $1.·{10}^{99}$ in the Algorithm, but you will actually get a long number of hundred digits.

This is the only option when working with decimal places as precision.

### Scientific notation

Scientific notation always shows numbers in normalized scientific notation, also called exponential notation.

Precision number here means significant digits of the mantissa to show.

Consider $6.023·{10}^{23}$ as correct answer. In General mode as allowed input, the only accepted notation is $6.023·{10}^{23}$. If you want to allow students answering in other formats you must use Quantity in Validation > Allowed input setting instead. This way $6.023E23$ is also accepted. To allow the lowercase e, untick its box in Validation > Options for quantity > Constants.

Note that the following answers are not OK:

• 12.3e+2: because there are too many digits before the decimal point

• 1.0 e+2: because there is an extra space in the middle

## Concrete number of decimals as assertion

As any other assertion, we can choose if the student answer has a concrete number of significant figures or decimal places.

Imagine that we want the student to ask with 1 number after the decimal point. Suppose that the correct answer is 21.5, then

## Repeating decimals

WirisQuizzes understands decimal numbers with repeating decimals. Repeating decimals is a notation used to represent decimal numbers with periodic expansion, rational numbers. There are three symbols available to mark repeating decimals; you can use any of them. The system is smart enough to know that $0.3\stackrel{⏜}{33}=0.\stackrel{⏜}{3}$, and of course, that $0.\stackrel{⏜}{9}=1$.

### What questions can we do today?

#### Students can answer numbers with repeating decimals at any time

Students can answer numbers with repeating decimals at any time. The system will recognize it like any other decimal number. If the answer fits the Validation criteria (Tolerance, Mathematically equal, ...), it will be graded as Correct.

#### Constant number with repeating decimals

Teachers can set for a Correct answer an endless number with repeating decimals. The student can answer any number, with or without repeating decimals, even a fraction, and it can be graded as correct, depending on the Validation criteria.

#### Use of "Literally equal"

At present, there is no Additional property to validate if a student answer has or has not repeated decimals. But you can use Literally equal to check if the student answer and the correct answer have the same form if they both have or have not repeated decimals.

#### Repeating decimals

At present, you can not generate variables with repeating decimals.