Описание тега floating-point-comparison
1
ответ
Почему в Perl 100*18,35 не сравнивается с 1835?
Когда я запускаю следующий Perl однострочный: $ perl -e 'print "Oh no!\n" unless 1835 == 100*18.35' я получил о нет! Это почему?
04 май '17 в 14:05
2
ответа
Почему при сравнении двух атрибутов типа `float` и`int` с одинаковыми значениями в Python получается `False`?
Давайте рассмотрим код ниже код: #!/usr/bin/env python class Foo(): def __init__(self, b): self.a = 0.0 self.b = b def count_a(self): self.a += 0.1 foo = Foo(1) for i in range(0, 15): foo.count_a() print "a =", foo.a, "b =", foo.b, '"a == b" ->',…
02 авг '16 в 13:49
3
ответа
Как сравнить несколько списков для числовой близости двух одновременно?
Скажем, у меня есть 4 списка: A = [1.1, 1.4, 2.1, 2.4] B = [1.3, 6.5, -1.0, 2.3] C = [0.5, -1.0, -1.1, 2.0] D = [1.5, 6.3, 2.2, 3.0] Как мне 1) сравнить списки, например, A,B B,C C,D A,C и т. Д. И 2) вернуть true, если элементы +/-0,2? Example outpu…
28 апр '17 в 23:49
4
ответа
Сравнение поплавков в колонне панд
У меня есть следующий фрейм данных: actual_credit min_required_credit 0 0.3 0.4 1 0.5 0.2 2 0.4 0.4 3 0.2 0.3 Мне нужно добавить столбец, указывающий, где actual_credit >= min_required_credit. Результат будет: actual_credit min_required_credit resul…
10 ноя '15 в 09:15
1
ответ
В C++ точно ли один из <, == и> должен быть истинным на float?
В C++ у меня есть гарантия, что для любого данного float a а также float bодин и только один из a < b, a == b а также a > b правда? Если это отличается между компиляторами и платформами, меня интересует Visual C++ на x86.
01 фев '17 в 20:53
1
ответ
Правильное сравнение значений типа double с использованием псевдонимов с целочисленными представлениями и ULP
Я пытался избежать эпсилон-сравнений для сравнения типов с плавающей запятой. Лучшее решение, которое я мог придумать, использовало разницу в ULP (Unit в последнем месте), хотя в этой статье было гораздо лучшее решение с использованием целочисленных…
18 дек '16 в 22:17
2
ответа
Равенство с плавающей точкой для кеширования дорогих вычислений
Уже есть много вопросов и ответов об опасностях ожидания того, что два числа с плавающей точкой, полученные в результате отдельных вычислений, будут в точности одинаковыми, поскольку числа с плавающей запятой не являются действительными числами. Это…
05 окт '16 в 22:04
1
ответ
Разница между способами сравнения чисел с плавающей точкой
Кажется, есть много подходов, чтобы судить, идентичны ли два числа с плавающей точкой. Вот несколько примеров, которые я нашел: fabs(x - y) < n * FLT_EPSILON * fabs(x) ИЛИ ЖЕ fabs(x - y) < n * FLT_EPSILON * fabs(y) fabs(x - y) < n * FLT_EPS…
24 мар '16 в 07:27
3
ответа
Почему Release/Debug имеет другой результат для std::min?
Вот тестовая программа: void testFunc() { double maxValue = DBL_MAX; double slope = std::numeric_limits<double>::quiet_NaN(); std::cout << "slope is " << slope << std::endl; std::cout << "maxThreshold is " << maxV…
07 окт '16 в 13:58
6
ответов
Равенство с плавающей точкой
Общеизвестно, что нужно быть осторожным при сравнении значений с плавающей запятой. Обычно вместо использования ==Мы используем некоторые тесты на равенство на основе эпсилон или ULP. Однако, интересно, есть ли случаи при использовании == отлично в …
02 июл '18 в 10:26
1
ответ
Умножает ли число с плавающей запятой на 0 всегда 0?
Числа с плавающей запятой хитрые, так как многие естественные арифметические свойства не выполняются. Я полагаю, что это конкретное свойство, тем не менее, сохраняется, но я предпочитаю спрашивать, а не подвергаться жестким обнаружениям ошибок. Пред…
15 июл '18 в 21:34
1
ответ
Почему я не могу сравнить реалы в Standard ML?
Почему не 1.0 = 2.0 Работа? Разве это не настоящий тип равенства? Это дает ошибку: Error: operator and operand don't agree [equality type required] operator domain: ''Z * ''Z operand: real * real in expression: 1.0 = 2.0 Почему реал в шаблонах не ра…
30 дек '16 в 10:51
3
ответа
Какая разница в R между одинаковыми (x, y) и isTRUE(all.equal(x, y))?
Есть ли разница между тестированием isTRUE(all.equal(x, y)) а также identical(x, y)? На странице справки написано: Не используйте "all.equal" непосредственно в "if" выражениях - либо используйте "isTRUE(all.equal(....))", либо "identifier", если нео…
03 авг '10 в 10:38
2
ответа
Проверка, находится ли конкретное значение с плавающей точкой в списке / массиве в Python/numpy
Необходимо соблюдать осторожность при проверке на равенство между числами с плавающей запятой, и обычно это следует делать с учетом допусков, используя, например, numpy.allcose. Вопрос 1: Безопасно ли проверять наличие определенного числа с плавающе…
19 мар '19 в 10:42
2
ответа
Как оценить, достаточно ли близки два числа в Python?
У меня есть два номера - 3,125000 МБ и 2,954880 МБ. Я хочу сравнить их, и он должен вернуть True, поскольку они почти 3 Мбайт. Как я могу сделать это в Python3. Я пытался делать math.isclose(3.125000,2.954880, abs_tol=0.1), Тем не менее, это возвращ…
27 мар '19 в 20:24
1
ответ
Можем ли мы использовать! Islessgreater(float a, float b), чтобы проверить a==b, если a и b не являются nan
Чтобы проверить, равны ли две переменные с плавающей точкой, мы не можем использовать что-то вроде a==b. Но как насчет использования функции islessgreater() из заголовочного файла? С C++11 есть три перегрузки, как показано ниже bool islessgreater (f…
30 авг '19 в 11:36
2
ответа
Каков рекомендуемый способ проверки приблизительных нулей в Catch2?
Какой канонический способ сравнить с приблизительными нулями в Catch2? Я нашел этот способ с допуском 1e-12, но не ясно, что это лучший способ: TEST("a approx. equal to b", "[test]"){ REQUIRE( a - b == (0_a).margin(1e-12) ); } Я не спрашиваю, как ср…
05 июн '19 в 21:21
4
ответа
Java List.contains объект с двойным допуском
Допустим, у меня есть этот класс: public class Student { long studentId; String name; double gpa; // Assume constructor here... } И у меня есть тест что-то вроде: List<Student> students = getStudents(); Student expectedStudent = new Student(12…
11 июл '19 в 20:58
0
ответов
Лучшее решение для двойного сравнения не работает?
Если я установлю _mountAxes.Y = 90 и запустить get ниже я получаю PierSide.pierWest с False для _mountAxes.Y <= 90. Думаю, это проблема двойного сравнения. Будет ли изменение 90 на 90.000000001 правильным способом обойти это? Пока в моей программ…
04 окт '19 в 22:01
1
ответ
Minitest assert_equal не работает, когда должно быть равно
У меня есть минимальный тест, который утверждает, совпадает ли десятичное число. Интересно, почему это Мой код утверждения: assert_equal -9.04, elts[2].change.round(2) Отказ: Ошибка: LeaveTypePolicyTest#test_case_12 [/usr/src/app/test/models/leave_t…
09 авг '20 в 16:44