Я пытаюсь сравнить два числа в R как часть условия, если-заявление:Числовое сравнение трудности в R
(a-b) >= 0.5
В данном конкретном случае, а = 0,58 и Ь = 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, поскольку на >=
нельзя действительно доверять?
я мог быть далеко, но это могло быть проблема с плавающей точкой? – Dan
Действительно. Я просто не знаю, что с этим делать. –
Вернее, я не знаю, что люди более сообразительны, чем я. –