The system stores numbers internally in a form called floating point. This is a very efficient format that can be used to express numbers across a huge range (from 10-300 to 10+300). It is also the format the underlying computer hardware understands, so they can be manipulated very fast too.

That's the up-side. The down-side is that floating point numbers are not exact. There is always a small error inherent in them. For example, the number 3 may be represented internally as 2.9999999999. Most of the time this does not matter because the number will be rounded before it is shown to you, so you will see 3.

However, it can cause problems when two numbers are compared. If you ask the computer: "Is 3 the same as 2.9999999999?" it will say: no, when for all practical purposes they are the same. This type of comparison is performed in many places within the system, for example when allocating stock to a job.

The Noise Level allows you to define a range of values that are to be considered as zero. Any value, or difference between two values, that is less than the noise level is considered to be zero. Thus if the noise level is 0.0001 and we ask "Is 3 the same as 2.9999999999?" the result is: yes, because the difference between the two numbers is 0.0000000001, which is less than the noise level of 0.0001.

The noise level is set globally by a default. The usual value is 10-9. This should not be changed except under exceptional circumstances.

This mechanism is used to prevent 'sillies', like having an on-hand stock quantity of 0.0000000001 litres.