Нашел небольшой баг в операторе IF, исправить возможно?

Pendolf

Client
Регистрация
25.11.2019
Сообщения
120
Благодарностей
87
Баллы
28
Сама суть бага заключается в сравнении одинаковых чисел большой длины, например {-Variable.X-}=={-Variable.Y-}, значение должно быть истинным только тогда, когда они равны, но если значения X = 15655000000001564, а значения Y = 15655000000001565, именно второе значение на одну единицу больше, все равно ответ будет истинным, если больше или меньше чем на две не проходит. Почему приходится регуляркой все делать точнее, если по сути все должно работать?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 642
Баллы
113
скорее всего особенности js. Хочешь точно сравнивать - сравнивай как строки в кавычках
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 302
Благодарностей
702
Баллы
113
Сама суть бага заключается в сравнении одинаковых чисел большой длины, например {-Variable.X-}=={-Variable.Y-}, значение должно быть истинным только тогда, когда они равны, но если значения X = 15655000000001564, а значения Y = 15655000000001565, именно второе значение на одну единицу больше, все равно ответ будет истинным, если больше или меньше чем на две не проходит. Почему приходится регуляркой все делать точнее, если по сути все должно работать?
C#:
string line = project.Variables["X"].Value;
string line2 = project.Variables["Y"].Value;
if (line == line2)
    return true;
return false;
 

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 738
Благодарностей
1 131
Баллы
113
Сама суть бага заключается в сравнении одинаковых чисел большой длины, например {-Variable.X-}=={-Variable.Y-}, значение должно быть истинным только тогда, когда они равны, но если значения X = 15655000000001564, а значения Y = 15655000000001565, именно второе значение на одну единицу больше, все равно ответ будет истинным, если больше или меньше чем на две не проходит. Почему приходится регуляркой все делать точнее, если по сути все должно работать?
В высоконагруженных проектах желательно использовать C#. Есть подозрение, что разработчики под капот кубика засунули много полезного, но в некоторых случаях не нужного. У меня, пока не переписал IF на код, кубик люто тормозил выполнение.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)