Как оценить, насколько велико одно число от другого? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь найти эффективное решение этой проблемы. Я получаю два числа от вызова API (мы можем назвать их n1, n2). Предположим, что n2 больше, чем n1. Я хочу знать, насколько больше n2. Разницы между ними недостаточно, потому что я не знаю, как оценить результат вычитания. Я не вижу другого решения, кроме как определить допустимый диапазон, который соответствует моей области применения, и проверить, находится ли их различие в этом диапазоне. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Это распространенная проблема при использовании чисел с плавающей точкой, что результаты могут быть почти равны, и вы хотите обрабатывать их, как если бы они были равны.

Вам нужна формула для измерения разницы между числами относительноразмер чисел, и это удивительно сложно найти.Одна проблема - избежать деления на ноль.Как всегда, сначала проверьте библиотеки: в этом случае модуль math включает math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)

Так что пусть математические эксперты справятся с этим для вас:

import math
if math.isclose(a,b):
    # they agree to around nine decimal places
0 голосов
/ 28 марта 2019

Почему бы тебе просто не взять отделение?Предположим, что n1 равно 1, а n2 равно 10. Если вы поделите n2 на n1, вы увидите, что n1 в 10 раз больше, чем n2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...