![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опять за рыбу деньги. С самого начала о чём разговор был? О входных параметрах. В Вашем случае на входе не ровно 0.8, а 0.80000000000000004 (4 в 17-м знаке после запятой, дебагер от вижуал студио мне показал)
Добро пожаловать в мир вещественных чисел.
Если Вам это не нравится (явно не нравится) переводите все Ваши вычисления на целочисленную основу.
Print( MathMod(5, 0.1)) выдает 0.1. Когда должен 0.0999. Может уже пора исправить ошибку, а не философствовать нам о мирах, особенно когда они исключительно в двоичной системе исчисления, а не вещественные !!!
... переводите все Ваши вычисления на целочисленную основу.
Может уже пора исправить ошибку, а не философствовать нам о мирах, особенно когда они исключительно в двоичной системе исчисления, а не вещественные !!!
xenon13 до сих пор не понял, что вычисление остатка по модулю исторически всегда было целочисленной операцией. И хочет, чтобы такие же точные результаты были при вещественных аргументах, даже в точке разрыва этой функции...
"Исторически всегда было целочисленной операцией ..." - оставте свой бред при себе. У Вас 1460 сообщений, а уровень дилетанта.
О каких точка разрывах идет речь ? Вы больны ? Там одна единственная точка разрыва - это при делении на 0.
И вообще, у меня большая к Вам просьба, так как здесь нет функции игнора, никогда не пишите в моих ветках, Ваши тупые замечания отвлекают от сути
Может уже пора исправить ошибку, а не философствовать нам о мирах, особенно когда они исключительно в двоичной системе исчисления, а не вещественные !!!
А я думал на внештатную зп бета-тестера. Черт, а получится как всегда :)
И смею заметить, что в ветке о MQL5 разработчики вообще не отвечают на сложные вопросы, ну что ж ... их конкуренты не дремлют.
Сначала Quik динамил всех с API и внутренним программированием, а сейчас его быстро вытеснит MT, но если и МТ пойдут тем же путем что и QUIK в отношении пожеланий пользователей .... кажется это называется эволюция :)
.
О каких точка разрывах идет речь ? Вы больны ? Там одна единственная точка разрыва - это при делении на 0.
Да уж, Ваш математический уровень даже ниже моего совсем никудышнего. ..
P.S. А точка разрыва MathMod() - это, например, (5; 0.1). Объяснить, почему? Очень просто: если первый аргумент 4.999999, второй в точности равен 0.1, то результат в идеале должен быть равен 0.099999. Но если взять первый аргумент 5.000001, оставив второй тем же, то результат должен быть 0.000001. Вот пример:
... переводите все Ваши вычисления на целочисленную основу.
А если я не знаю сколько у меня знаков после запятой ? Более того, мне это и нужно узнать.
Нет, я конечно могу число умножить на 10^n, только это, как бы сказать помягче - не изящно.
Да и потом MathMod опять вернет double и опять гадай что там, а потом гадай что выведет Print(), и совпадает ли оно с double, с NormDouble и с тем что вообще должно быть по математике :)
Xотя, в идеале, он воообще обязан выдавать int и ничего более !!!
Слава, я согласен с xenon13. Математика есть матиматика. Посмотрите на это с точки зрения именно матиматика и согласитесь, что реализация функции fmod кривоватая.
Из моих проверок:
Print(MathMod(4, 0.5)); возвращает 0
Print(MathMod(4, 0.4)); возвращает 0.4
Мне такой расклад тоже не по душе...
Согласен.
Смотрим описание на MathMod
Функция MathMod рассчитывает вещественный остаток f от x / y таким образом, что x = i * y + f , где i является целым числом, f имеет тот же знак, что и x, и абсолютное значение f меньше, чем абсолютное значение y.
и так
для варианта 1 (по формуле в описании)
4=8*0.5+0 - результат верен
для варианта 2 (по формуле в описании)
4=10*0.4+0.4 - результат не верен
И где тут логика или вещественный мир?
Вывод - описание не соответствут действительности или....