Вопрос уже избитый. Но всё ж попробую поднять. У моего брокера МТ-4 с пятью знаками после запятой. У меня и не только у меня этот знак вызывает только путаницу. Говорят, что преобразовать МТ-4 от моего брокера для работы с четырьмя знаками никак нельзя (ИЛИ ВСЁ ТАКИ МОЖНО???)... Раз нельзя, то есть ли какой-то способ, чтобы этот знак как-то выделить, чтобы он не путался. Ну может быть уменьшить его, увеличить, перевернуть, подчеркнуть, перекрасить, другим шрифтом выделить или ещё как??? Может быть я чего-то не знаю, но я вроде всё в терминале перепробовал, способа решить проблему не обнаружил...
Кстати неплохо если-бы была в МТ-4 вообще возможность изменять размер текста, и цены на самом графике...Для меня лично, как то всё мелковато...
Вопрос уже избитый. Но всё ж попробую поднять. У моего брокера МТ-4 с пятью знаками после запятой. У меня и не только у меня этот знак вызывает только путаницу. Говорят, что преобразовать МТ-4 от моего брокера для работы с четырьмя знаками никак нельзя (ИЛИ ВСЁ ТАКИ МОЖНО???)... Раз нельзя, то есть ли какой-то способ, чтобы этот знак как-то выделить, чтобы он не путался. Ну может быть уменьшить его, увеличить, перевернуть, подчеркнуть, перекрасить, другим шрифтом выделить или ещё как??? Может быть я чего-то не знаю, но я вроде всё в терминале перепробовал, способа решить проблему не обнаружил...
Кстати неплохо если-бы была в МТ-4 вообще возможность изменять размер текста, и цены на самом графике...Для меня лично, как то всё мелковато...
https://docs.mql4.com/ru/convert/NormalizeDouble
double cena=NormalizeDouble(MarketInfo("EURUSD",MODE_BID),4);
https://docs.mql4.com/ru/convert/NormalizeDouble
double cena=NormalizeDouble(MarketInfo("EURUSD",MODE_BID),4);
Да и не нормализация нужна, а DoubleToStr до 4 знаков...
Да дело-то не в программировании, а в недовольстве от отображения цены в интерфейсе МТ4, чем тут этя строчка кода поможет, тут терминал переписывать надо )))
Да и не нормализация нужна, а DoubleToStr до 4 знаков...
Это смотря для каких целей, если преобразовать в string, тогда DoubleToStr() https://docs.mql4.com/ru/convert/DoubleToStr поможет, а если использовать в расчетах, то NormalizeDouble() будет достаточно. Я, что бы не получать предупреждений в новом MQL4 (там более жестко с приведением типов) во время использования значений double в функциях MQL4 где параметром идут int, преобразую double значения в string и из него уже в int. Как видишь вариантов несколько.
А если человека раздражает пятизнак в терминале из-за наглядности, то кто мешает поместить значение цены в четырехзнаке в правый угол, да еще сделать покрупнее и цветом выделить? Проблем думаю нет вообще. То что я привел в первом примере с NormalizeDouble(), используется повсеместно многими программистами MQL4 как раз в расчетах.
... Я, что бы не получать предупреждений в новом MQL4 (там более жестко с приведением типов) во время использования значений double в функциях MQL4 где параметром идут int, преобразую double значения в string и из него уже в int. Как видишь вариантов несколько.
double a=10.0; int b=(int)a;
Это смотря для каких целей, если преобразовать в string, тогда DoubleToStr() https://docs.mql4.com/ru/convert/DoubleToStr поможет, а если использовать в расчетах, то NormalizeDouble() будет достаточно. Я, что бы не получать предупреждений в новом MQL4 (там более жестко с приведением типов) во время использования значений double в функциях MQL4 где параметром идут int, преобразую double значения в string и из него уже в int. Как видишь вариантов несколько.
А если человека раздражает пятизнак в терминале из-за наглядности, то кто мешает поместить значение цены в четырехзнаке в правый угол, да еще сделать покрупнее и цветом выделить? Проблем думаю нет вообще. То что я привел в первом примере с NormalizeDouble(), используется повсеместно многими программистами MQL4 как раз в расчетах.
вот сначала перечитайте вопрос ТС, ему не код расчётов нужен, а именно новый интерфейс
artmedia70:
Нафига??? Стоя в гамаке?
Неявное приведение типов из double в int так не делается, по крайней мере тут об этом написано https://www.mql5.com/ru/docs/basis/types/casting (в разделе справки нового MQL4 об этом же пишут). А вот из int в double можно.
Кстати плохо, что в MQL4 нет таких же возможностей как в С++.
Неявное приведение типов из double в int так не делается, по крайней мере тут об этом написано https://www.mql5.com/ru/docs/basis/types/casting (в разделе справки нового MQL4 об этом же пишут). А вот из int в double можно.
Кстати плохо, что в MQL4 нет таких же возможностей как в С++.
Каким образом через строку не потеряется дробная часть double ? Преобразование double в int в любом случае подразумевает отсечение дробной части действительного числа. Если нужно округлять по правилам - для этого есть другие функции, в частности MathRound()
Каким образом преобразование
double a=10.0; string b=DoubleToString(a,0); int c=StrToInteger(b);
лучше, чем
int c=(int)a;Если в итоге получим целое 10 ?
Каким образом через строку не потеряется дробная часть double ? Преобразование double в int в любом случае подразумевает отсечение дробной части действительного числа. Если нужно округлять по правилам - для этого есть другие функции, в частности MathRound()
Каким образом преобразование
лучше, чем
Если в итоге получим целое 10 ?
int StrToInteger(string value) возвращает тип int. Поэтому когда в качестве параметра в функцию требуется передать int и мы преобразуем через DoubleToString - StrToInteger - то на выходе получаем чистый int, а не усеченный double до нулевого знака после запятой.
Размеры типов на всякий случай:
int - 4 байта
double - 8 байт
Я не знаю как лучше, но думаю, что без варнингов лучше по любому, плюс экономия памяти, когда переменных много это более заметно и плюс ко всему корректность и точность вычислений. Вот к примеру про приведение типов сказано тут http://www.sql.ru/forum/220914/preobrazovanie-tipov-int-double и вот тут http://cppstudio.com/uchebniki/yazyk-programmirovaniya-s/yavnoe-i-neyavnoe-preobrazovanie-tipov-dannyx-c/
Плохо, что в MQL4 не предусмотрено приведение типов с использованием cast`ов.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вопрос уже избитый. Но всё ж попробую поднять. У моего брокера МТ-4 с пятью знаками после запятой. У меня и не только у меня этот знак вызывает только путаницу. Говорят, что преобразовать МТ-4 от моего брокера для работы с четырьмя знаками никак нельзя (ИЛИ ВСЁ ТАКИ МОЖНО???)... Раз нельзя, то есть ли какой-то способ, чтобы этот знак как-то выделить, чтобы он не путался. Ну может быть уменьшить его, увеличить, перевернуть, подчеркнуть, перекрасить, другим шрифтом выделить или ещё как??? Может быть я чего-то не знаю, но я вроде всё в терминале перепробовал, способа решить проблему не обнаружил...
Кстати неплохо если-бы была в МТ-4 вообще возможность изменять размер текста, и цены на самом графике...Для меня лично, как то всё мелковато...