Вопрос по MT Language!!! - страница 5

 
Не C я учил, а Паскаль, поэтому не знал. То есть фактически функция NormalizeDouble становится обязательным приложением при операциях с делением?
 
Нет. Старайтесь планировать типы переменных в зависимости от желаемых результатов. Используйте тип double где нужны числа с запятой.
 
To renat:
На самом деле нужен оператор принудительного приведения типа. Кстати керниган и ричи проблему с приведением типа при float переменной слева а два целых справа вообще обошли, сославшись на применение принудительного преобразования. А переменные не всегда удается по смыслу делать плавающими. например число баров. Трудно предствить дроную составляющую бара. с другой стороны вместо обрезания дробной части от деления двух целых компилятор может просто посмотреть что ожидается в левой части и решить что делать - тратить время на обрезание дробной или вернуть то что получилось. Да это и логичнее.
 
объясните мне скрытый смысл оператора принудительного приведения типа. единственный смысл такого оператора я вижу только в том, чтобы компилер не выдавал предупреждений, ибо программер, используя явное приведение типов, знает сам, что делает.
 
To slawa

Последние 5 постов и есть скрытый смысл. Если одна и та же проблема появляется несколько раз - это причина посмотреть - все ли правильно. Тем более все время отсылка идет к языку С. но в данном примере ссылка на С и приводит к проблеме приведения типов. Или измените поведение компилятора. тем более что есть несколько стандартов С. Для простоты можно выложить тот стандарт который Вы реализуете.
 
wellx, скажите, как Вам поможет оператор явного приведения типа. и проиллюстрируйте на примере, пожалуйста. не надо меня отсылать к последним 5 постам, раз я высказал явное непонимание. Вы лучше сразу сформулируйте, что я должен был там увидеть.
 
Имеем две переменные a & b , которые по смыслу ОБЯЗАНЫ быть целыми. Надо вычислить a/b которое может измеряться как число с плавающей точкой. Если использовать вашу логику то я никогда не получу правильного ответа. С другой стороны если я знаю что при делении двух целых получим целое , то при написании выражения я , зная это, напишу c=(double)a/b; При этом конечный пользователь НИКОГДА не сможет ввести дробное число там где нужно ТОЛЬКО целое. Надеюсь понятно сейчас. Вспомните тред по кауфману. просто я уженапоролся на это, теперь и другие. Значит где то ошибка в логике реализации. Я хочусказать - либо Вы реализуете весь язык С или не ссылайтесь на него как на Библию. Перед тем как писать о этой проблеме специально почитал спецификации по с.
Там и дается ссылка на использование приведения типа.
 
вот теперь всё предельно ясно. спасибо.
со временем мы обязательно сделаем явное приведение типов.
 
Всегда рады помочь.
 
Связь различных таймфреймов в стандартных индикаторах - вещь отличная (для реализации системы "трех окон"), но хотелось бы знать, а как она реализована в оставшейся части MQL4(необходимо при написании индикаторов, не вошедших в стандартную поставку). Например: зная время закрытия интервала на получасовом графике, как я могу определить относятся ли предыдущий и текущий получасовые интервалы к одному (более крупному - допустим дневному) интервалу или к разным?
Причина обращения: