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

Vladimir Karputov:

А эти два числа каких типов? И также не мешает пользоваться переводом сообщения об ошибке - так сразу поймёте где Ваша ошибка.

fabs()  всегда double

PeriodSeconds() всегда int

Перевод тоже очевидный...

Вот я нашёл ответ:

https://www.mql5.com/ru/forum/1111/page166#comment_29753

но не уверен, что в моём случае он применим...

if(fabs(Start-End)/1000 > (double)PeriodSeconds(PERIOD_D1)*10)

так нет предупреждения, но выглядит как извращение

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2010.10.15
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
Igor Zakharov:

fabs()  всегда double

PeriodSeconds() всегда int

Перевод тоже очевидный...

Вот я нашёл ответ:

https://www.mql5.com/ru/forum/1111/page166#comment_29753

но не уверен, что в моём случае он применим...

fabs(Start-End)/100 какой тип имеет? А?


Справка: Приведение типов

Vladimir Karputov:

fabs(Start-End)/100 какой тип имеет? А?


Справка: Приведение типов

double/int = double

Igor Zakharov:

double/int = double

Да, верно. И вот этот double Вы сравниваете с int (PeriodSeconds -> int).

Vladimir Karputov:

Да, верно. И вот этот double Вы сравниваете с int (PeriodSeconds -> int).

и?
Vladimir Karputov:

Да, верно. И вот этот double Вы сравниваете с int (PeriodSeconds -> int).

обычно, нет в таком сравнении проблемы, вот искусственные примеры. Компилятор предупреждает только в вышеприведённом случае:


template <typename T>
string GetTypeName( T )
{
  return(typename(T));
}

void OnStart()
{
  Print(GetTypeName(fabs((uint)0))); // uint
}


Такая сигнатура

template <typename T>
T fabs( T );
Igor Zakharov:

для типа ulong функция fabs возвращает тип ulong. приводите к знаковому типу внутри fabs или после fabs или к беззнаковому справа

fxsaber:

TheXpert:

Теперь понятно... 

Спасибо!

Добавлено: в справке нет этого - там только double прописано.
Видимо, по ошибке забанили TheXpert.