Ошибки, баги, вопросы - страница 3229

 
A100 #:

Вот код:

Если (*) компилируется без ошибки, тогда вместо (1) можно было бы записать (2) - т.е. мы неявно обходим ограничение (1), поэтому С++ при компиляции (*) выдает ошибку

Спасибо за код.

Это действительно должна быть ошибка компиляции - исправлю

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

mktr8591, 2022.08.17 14:30

В чем причина ошибки компиляции?  (в c++ компилируется без ошибок)

b3401

class A {};
template <typename T> class B {};

class C
  {
public:
   template <typename Y>
   void              func(B<Y> & p) {}
  };

void OnStart()
  {
   B<const A> b;
   C c;
   c.func(b);     //compile error
//'b' - parameter conversion not allowed
//void C::func(C::B<Y>&)
  }
А здесь не ошибка компилятора?
 

Нашел баг с простым делением...или я что-то не понимаю

   double a = 15/100;
   double b = 15*0.01;
   Print("Если 15 делим на 100 получаем: ",DoubleToStr(a,5),", но если 15 умножаем на 0.01 получаем: ",DoubleToStr(b,5));

2022.08.25 12:24:55.253 Bag EURUSD,M5: Если 15 делим на 100 получаем: 0.00000, но если 15 умножаем на 0.01 получаем: 0.15000
Файлы:
Bag.mq4  2 kb
 
Tretyakov Rostyslav #:

Нашел баг с простым делением...или я что-то не понимаю


вы перегрелись :-) бывает

если целое число делим на большее и тоже целое, то получается 0

15/100 = 0

 
Maxim Kuznetsov #:

вы перегрелись :-) бывает

если целое число делим на большее и тоже целое, то получается 0

15/100 = 0

Вы думаете я перегрелся?


 
Tretyakov Rostyslav #:

Вы думаете я перегрелся?


А Вы сделайте так

double a = 15.0/100.0;

 
Maxim Kuznetsov #:

вы перегрелись :-) бывает

если целое число делим на большее и тоже целое, то получается 0

15/100 = 0

Но в Ваших словах есть доля правды

если добавляю 0 после запятой

double a = 15.0/100;

то все ок

2022.08.25 12:42:18.766 Bag EURUSD,M5: Если 15 делим на 100 получаем: 0.15000, но если 15 умножаем на 0.01 получаем: 0.15000

Отсюда вопрос:

Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?

PS И главное - это баг или особенность mql4?

 
Tretyakov Rostyslav #:

Но в Ваших словах есть доля правды

если добавляю 0 после запятой

то все ок

Отсюда вопрос:

Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?

ЗЫ И главное - это баг или особенность mql4?

вот даже теряюсь, что и как на такое ответить... сказать что это просто основы программирования? 

но вы-же массово консультируете новичков в темах про разработку

уже есть лёгкое подозрение, что кто-то завладел аккаунтом Ростислава :-)

 
Tretyakov Rostyslav #:

Но в Ваших словах есть доля правды

если добавляю 0 после запятой

то все ок

Отсюда вопрос:

Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?

PS И главное - это баг или особенность mql4?

Деля целое на целое - целое и получаем.

Если хотим получить плавающее (float/double) - хотя бы одно из исходных чисел должно быть приведено к плавающему. Иначе к нему приводится уже результат деления целых чисел.

Число с десятичной точкой - это плавающее.

 
Maxim Kuznetsov #:

вот даже теряюсь, что и как на такое ответить... сказать что это просто основы программирования? 

но вы-же массово консультируете новичков в темах про разработку

уже есть лёгкое подозрение, что кто-то завладел аккаунтом Ростислава :-)

Я не программист, для меня это увлечение. А с подобной ситуацией столкнулся впервые.

Помогите кто нибудь "особо одаренному" - Мне нужно открытие новых ордеров, если нет открытых.
Помогите кто нибудь "особо одаренному" - Мне нужно открытие новых ордеров, если нет открытых.
  • 2007.10.26
  • www.mql5.com
сильно насыщены дополнительными функциями и обращениями к индикаторам. Во-вторых тебе надо готовый советник или просто куски кода как это сделать. там обращения к индикаторам, которых я вообще не могу понять
Причина обращения: