Я пытаюсь сравнить два числа в R как часть условия if-statement:
(a-b) >= 0.5
В этом конкретном случае a = 0,58 и b = 0,08... и все же (a-b) >= 0.5 является ложным. Я знаю об опасности использования == для точного сопоставления чисел, и это кажется связанным:
(a - b) == 0.5) является ложным, а
all.equal((a - b), 0.5) истинно.
Единственное решение, о котором я могу думать, состоит в том, чтобы иметь два условия: (a-b) > 0.5 | all.equal((a-b), 0.5). Это работает, но это действительно единственное решение? Должен ли я просто кляться от семейства операторов сравнения = навсегда?
Изменить для ясности: Я знаю, что это проблема с плавающей точкой. Более принципиально, что я спрашиваю: что я должен делать? Какой разумный способ справиться с сравнениями более или равными с R, поскольку >= действительно не может быть доверен?