Сценарий вы спрашиваете о том, что у вас есть два числа, $a
и $b
, которые являются значения, которые вы вычислили, пытаясь вычислить некоторые точные математические значения a и b. Однако, поскольку любая численная арифметика имеет ошибки в вычислении, значения $a
и $b
содержат ошибки, которые (возможно) делают их отличными от a и b. Затем, учитывая только $a
и $b
, вы хотите определить взаимосвязь между a и b.
Правило здесь - мусор, мусор. Когда у вас есть номера, содержащие ошибки, есть ограниченные вещи, которые вы можете сделать с ними. Вы не можете точно определить отношения.
Сколько может $a
отличается от a? Сколько может $b
отличается от b? На этот вопрос нет общего ответа. Это зависит от того, какие расчеты вы выполняли, чтобы получить эти значения и какие числа были задействованы. Ошибки могут варьироваться от нуля до бесконечности или могут давать вам нечисловые (NaN) результаты. Определение того, насколько может быть ошибка, чрезвычайно специфично для приложений. Никакой ответ не может быть предоставлен без подробностей о выполняемых вами вычислениях.
После того, как вы подсчитали, сколько ошибок может быть, что вы с ним сделаете? Количество ошибок говорит вам, сколько «slop» может быть в $a
и $b
. Если $a
и $b
отличаются более чем на величину отклонений, вы можете быть уверены, что a и b, безусловно, разные. Но если $a
и $b
находятся в пределах этого расстояния, что вы можете сказать?
Невозможно определить. Вы не можете знать, является ли и б равны ли больше, или б больше. Итак, какой ответ вы хотите в этом случае?
Существует миф, часто повторяющийся в переполнении стека, что числа с плавающей запятой следует сравнивать для равенства с допуском. Алгоритм, данный в этом мифе, почти всегда показывает числа, сообщаемые равными, когда вычисленные значения находятся в пределах допуска. Но нет никаких оснований для правильного ответа. Некоторые приложения сломаются, если говорят, что два числа равны, когда они не являются.
Таким образом, ответ, который будет задан, когда правильный ответ не может быть определен, зависит от вашего приложения.
Если вы рассчитали два числа с ошибками в них, вы, как правило, не можете определить, какое из чисел будет больше при правильной вычислении. –