Я пытаюсь сравнить два числа в 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, поскольку >=
действительно не может быть доверен?