Equal - Check whether multiple numbers are equal
This action compares several numbers to check whether they are all equal
(or equal but for an "insignificant difference").
Two numbers are considered "equal but for an insignificant difference"
if the difference between them can be attributed to "reasonable rounding"
caused by the fact that it is sometimes impossible for computers to express a
number with complete accuracy.
Practically, the action checks whether two compared numbers both have
the same sign (they are both positive or both negative) and the
difference between them is less than 1 billionth of each of them.
Thus, for example, 800 and 800.000007 are considered different,
but 800 and 800.0000007 are considered equal.
If there is a need to check whether two numbers are identical (with no
tolerance at all) or to distinguish between 3 different cases
(<X> greater than <Y>, <X> equal to <Y>, or
<X> smaller than <Y>),
use Compare.
For comparison of non-numbers,
use Miscellaneous/Equal.
Triggers
The action's template has two triggers (X and Y),
but the action can be used
with any number of triggers. The action
compares any of the numbers received through any of the triggers:
- For any non-repetitive trigger
(e.g. X or Y in the action's template): comparing the
number received through the trigger (if any);
- For any repetitive trigger:
comparing any of the numbers received through the
trigger (if any).
Exits [none required]
The two exits represent two mutually exclusive possibilities:
<Yes> (non-repetitive numeric exit [not required]): One
of the input numbers, in case all input numbers are considered equal.
<No> (non-repetitive empty exit [not required]): Charged
in case at least two numbers are considered different.
Usage Examples
... (need to complete)
Known Bugs
For better performance, the action does not compare any input number
to any other input number. Instead, each number is compared to one other
number only. This means, if there are more than two input numbers, that
the comparison tolerance might increase a little over 1 billionth.
For example, if the action gets as input 800, 800.0000007 and 800.0000009,
it might first compare 800 and 800.0000007 (considered equal) and then compare
800.0000007 and 800.0000009 (also considered equal). As both comparisons
are considered successful, the action will exit through <Yes>,
although 800 and 800.0000009 are not considered equal.