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.