Особенности языка mql5, тонкости и приёмы работы - страница 241
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы отказываетесь понимать.
Может быть бы и понял, если бы знал предысторию ситуации. А так, в сухом остатке, выглядит все правильно.
As long as the two amounts are equal, any one of them is a valid minimum. Consider MathMin(1, 1), it does not differ if the the function returns the first (1) or second (1).
So, returning 0.0 is not different from -0.0.
Edit: by the way, the two highlighted expressions are NOT identical.Пожалуй соглашусь с коллегой amrali. Ещё добавил бы, что есть нативная функция MathMin(). Она тоже считает, что нули с разными знаками равны. Насколько понял, то у неё алгоритм достаточно простой. Продублировал его в своей функции CustomMathMin().
В журнале имеем:
Легко заметить, что из двух равных чисел алгоритм возьмёт второе число в виде минимального значения...
Вы отказываетесь понимать.
ничего особенного. Просто -0.0==0.0
ничего особенного. Просто -0.0==0.0
Отлично разбираюсь в вопросе, поэтому написал оба варианта MathMin, чтобы показать, что математически одинаковые функции в языках программирования выдают неодинаковые результаты.
Отлично разбираюсь в вопросе, поэтому написал оба варианта MathMin, чтобы показать, что математически одинаковые функции в языках программирования выдают неодинаковые результаты.
Ну и что необычного?
То, что в числах 0.0 и -0.0 не все 64 бит одинаковые - это очевидно:
но при этом все равно 0.0 == -0.0
Знаки < и <= вроде бы разные...
согласен
Ну и что необычного?
То, что в числах 0.0 и -0.0 не все 64 бит одинаковые - это очевидно :
Он ожидает, что функция MathMin() будет детерминированной. Таким образом, чтобы всегда давать один и тот же результат, когда два аргумента одинаковы. И не разный результат в зависимости от того, какой аргумент первый или второй.
fxsaber прав, это проблема.
Он ожидает, что функция MathMin() будет детерминированной. Таким образом, чтобы всегда давать один и тот же результат, когда два аргумента одинаковы. И не разный результат в зависимости от того, какой аргумент первый или второй...
А она и есть такая. Когда 2 числа равны, то возвращается второе. Выше на примере показал...
и здесь все в порядке.
Он ожидает, что функция MathMin() будет детерминированной. Таким образом, чтобы всегда давать один и тот же результат, когда два аргумента одинаковы. И не разный результат в зависимости от того, какой аргумент первый или второй.
fxsaber прав, это проблема.
Вы правильно меня поняли. Можно нарваться на трудноуловимое получение разного результата в большом коде. Поэтому уведомил сообщество в этой ветке.