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

Pendolf

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

doc

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

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 248
Благодарностей
674
Баллы
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 700
Благодарностей
1 078
Баллы
113
Сама суть бага заключается в сравнении одинаковых чисел большой длины, например {-Variable.X-}=={-Variable.Y-}, значение должно быть истинным только тогда, когда они равны, но если значения X = 15655000000001564, а значения Y = 15655000000001565, именно второе значение на одну единицу больше, все равно ответ будет истинным, если больше или меньше чем на две не проходит. Почему приходится регуляркой все делать точнее, если по сути все должно работать?
В высоконагруженных проектах желательно использовать C#. Есть подозрение, что разработчики под капот кубика засунули много полезного, но в некоторых случаях не нужного. У меня, пока не переписал IF на код, кубик люто тормозил выполнение.
 

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