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

Pendolf

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

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