
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не согласен, проблема есть, вот пример (сетка 10000x10000):
double x1=0.0011;
double y1=x1/10000;
double x2=0.0012;
double y2=x2/10000;
double c=y1-y2;
double d=MathPow(c,2);
printf(string(d));
результат: 9.999999999999968e-017
И что мне с этим результатом делать? Как сравнивать с другими результатами? DBL_EPSILON=2.2204460492503131e-016. Кроме того два последних разряда - видите? И это только две операции. А у меня этих операций больше. А по этой информации потом восстанавливать данные надо с помощью еще некоторого количества операций. Еще потери. Я только учусь программировать на С-подобном языке и для меня такой класс трудно сделать(вернее, даже не представляю как). Это серьезная работа. Кстати, у вас, случайно, может есть такой класс? А разработчики сразу за один раз для всех могут улучшить положение вещей. Можно будет делать сетки 100 000x100 000. Уже более-менее представительные выборки доступны будут, хотя и этого мало по большому счету. А если бы они класс для произвольной точности сделали - было бы еще лучше :) При чем здесь огород городить - это просто тип данных. Если он существует, значит не просто так, а потому, что удовлетворяет возникающие потребности. Дело в том, что мне не известно - трудно это для разработчиков или не очень. Если трудно и накладно - то согласен с вами - зачем перекладывать на них мою проблему. А если не трудно - почему бы и не сделать. Опять же - мощная среда разработки торговых расчетов с высокой точностью - тут некое конкурентное преимущество :). Поэтому спрашиваю, что они думают про это.
Перечитайте пожалуйста что такое стандартный вид числа, и многие вопросы отпадут.
В стандартном вида 1.111е5 больше чем 9.999е4 так что сравнение проходит вполне корректно. млин прийдётся статью написать ликбезовскую.
Вот этот же результат: 9.999999999999968e-017 связан с двоичным преставлением числа, не всякое число в двоичном виде представляется конечной дробью, некоторые представляются бесконечной, отсюда округление мантисы до ближайшего числа с конечной дробью.
ЗЫ кстати вот double d=MathPow(c,2); так брать степень не коррректно, если вы работаете с дубль то нужно double d=MathPow(c,2.0); так, не знаю баг или нет но задавая возведение числа в степень нужно следить и за типом показателя.
Фантазии здесь совершенно не при чем. Мой вопрос возник по возможности реализации самого распространенного метода анализа. А именно - работа с рядом, оставшимся после удаления тренда и цикла. Про этот метод написано во всех, без исключения, учебниках по статистике финансов и методичках в вузах. Это не какая-то фантазия, а один из канонических подходов к анализу. И специализированная среда должна иметь средства реализовать такой подход - как вы считаете?
Перечитайте пожалуйста что такое стандартный вид числа, и многие вопросы отпадут.
В стандартном вида 1.111е5 больше чем 9.999е4 так что сравнение проходит вполне корректно. млин прийдётся статью написать ликбезовскую.
Вот этот же результат: 9.999999999999968e-017 связан с двоичным преставлением числа, не всякое число в двоичном виде представляется конечной дробью, некоторые представляются бесконечной, отсюда округление мантисы до ближайшего числа с конечной дробью.
Про 1.111е5 и 9.999е4 понятно. Но мне необходимо сравнивать вот эти: 9.999999999999968e-017 (про потерю точности в разрядах я дополнительно написал). А справка говорит, что числа с разницей меньше DBL_EPSILON необходимо считать неразличимыми. Извиняюсь, если не совсем понятно пишу - пока только разбираюсь в этом :) За информацию про показатель отдельно спасибо.
ЗЫ кстати вот double d=MathPow(c,2); так брать степень не коррректно, если вы работаете с дубль то нужно double d=MathPow(c,2.0); так, не знаю баг или нет но задавая возведение числа в степень нужно следить и за типом показателя.
Уважаемые разработчики, разрешите типу void возвращать значения, или определите новый класс возвращающий значения любого типа.
что то наподобии этого:
ЗЫ Предвосхищая вопрос для чего это нужно, хочу иметь в пользовательских функциях вот такие объявления:
а для этого нужно что то добавить в язык. Вы слишком сильно обезопасили пользователей, где то нужно дать чуть слабину.
Вот представьте, пишет человек код, наваял 1500 строк, и весь код работает с дублем, чтоб передать в него инт нужно будет сделать перегрузку ещё на 1500 строк. А у вас 14 типов.
Вот представьте, пишет человек код, наваял 1500 строк, и весь код работает с дублем, чтоб передать в него инт нужно будет сделать перегрузку ещё на 1500 строк. А у вас 14 типов.
Используйте ООП.
Используйте ООП.
А я по вашему на автокодах пишу что ли?
to Разработчики:
как вариант облегчения участи пишущей братии сделайте приведение типа массива, чтоб можно было хотя бы такой вызов сделать:
А я по вашему на автокодах пишу что ли?
Исходя из того, что вам понадобилось такое расширение языка - видимо, да.
p.s. Если бы во время решения вашей задачи у вас был только компилятор C++ - мы бы услышали предложение о пересмотре стандарта языка?
Исходя из того, что вам понадобилось такое расширение языка - видимо, да.
p.s. Если бы во время решения вашей задачи у вас был только компилятор C++ - мы бы услышали предложение о пересмотре стандарта языка?
Не путайте транслятор и компилятор, mql на самом деле никакой не компилятор, это транслятор описывающий безопастные вызовы функций C++
к тому же mql5 находится в активной фазе разработки. Так что моя просьба внести изменения вполне адекватная.
Не путайте транслятор и компилятор, mql на самом деле никакой не компилятор, это транслятор описывающий безопастные вызовы функций C++
к тому же mql5 находится в активной фазе разработки. Так что моя просьба внести изменения вполне адекватная.
Ок, если это настолько важно - возьмем не C++, а Java. Тоже трансляция в байткод :) Просим пересмотреть стандарт языка?
Просьба добавить универсальный тип - не вполне адекватна. Просить нужно шаблоны. А для универсальных типов достаточно ООП.