version 6.0
SET REAL COMPARISON LEVEL (epsilon)
Parameter | Type | Description | |
epsilon | Number | Epsilon value for real equality comparisons |
Description
The SET REAL COMPARISON LEVEL command sets the epsilon value used by 4th Dimension to compare real values and expressions for equality.
A computer always performs approximative real computations; therefore, testing real numbers for equality should take this approximation into account. 4th Dimension does this when comparing real numbers by testing whether or not the difference between the two numbers exceeds a certain value. This value is called the epsilon and works this way:
Given two real numbers a and b, if Abs(a-b) is greater than the epsilon, the numbers are considered not equal; otherwise, the numbers are considered equal.
By default, 4th Dimension, sets the epsilon value to 10 power minus 6 (10^-6). Please note that the epsilon value should always be positive. Examples:
0.00001=0.00002 returns False, because the difference 0.00001 is greater than 10^-6.
0.000001=0.000002 returns True, because the difference 0.000001 is not greater than 10^-6.
0.000001=0.000003 returns False, because the difference 0.000002 is greater than 10^-6.
Using SET REAL COMPARISON LEVEL, you can increase or decrease the epsilon value as you require.
Note: If you want to execute a query or an "Order by" on a numeric indexed field whose values are lower than 10^-6, make sure that the SET REAL COMPARISON LEVEL command is executed before construction of the index.
WARNING: Typically, you will not need to use this command to change the default epsilon value.
IMPORTANT: Changing the epsilon only affects real comparison for equality. It has no effect on other real computations nor on the display of real values.
See Also