Срочно требуется помощь !! Аксакалы MQL выручайте !!!
Функция NormalizeDouble:
как ее правильно написать чтобы выводила с требуемой точностью - 8 знаков
double f=NormalizeDouble((3.1415926535897*7/10),8);
Print("f= ", f);
при запуске в журнале отражается точность 4 знака
Попробуй вот так:
int start() {//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ double f=3.1415926535897*7/10; Print("f= ", snd(f,8) ); }//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ string snd(double v,int точн) {//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ точн=8;double nv=NormalizeDouble(v,точн); string text=nv; if(nv>=0.0)text=" "+text; return(StringSubstr(text,0,StringFind(text,".")+точн+1)); }//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
функция не только нормализует, переводит в стринг но и делает отступ если число больше нуля(для того чтоб небыло сдвига при отображении минуса).
зы Вся проблема в том что нормализация то идёт нормально а вот отображение только до 4-го знака, вот и приходиться переводить в стринг.
Попробуй вот так:
функция не только нормализует, переводит в стринг но и делает отступ если число больше нуля(для того чтоб небыло сдвига при отображении минуса).
зы Вся проблема в том что нормализация то идёт нормально а вот отображение только до 4-го знака, вот и приходиться переводить в стринг.
А DoubletoStr() уже не катит?
Дубль то стринг тупо зальёт то количество знаков которое есть в наличии, 0.1 имеет один знак после запятой, 0.12 два
я моя функция табличная (ею можно стоить в txt таблицы, причём сдвига никакого не будет) указал точность и вперёд.
Дубль то стринг тупо зальёт то количество знаков которое есть в наличии, 0.1 имеет один знак после запятой, 0.12 два
я моя функция табличная (ею можно стоить в txt таблицы, причём сдвига никакого не будет) указал точность и вперёд.
string DoubleToStr( | double value, int digits) |
И зачем огород городить.
string DoubleToStr( | double value, int digits) |
И зачем огород городить.
Виктор если ты четырёхстрочную функцию называешь "огород городить" тогда ой.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Функция NormalizeDouble:
как ее правильно написать чтобы выводила с требуемой точностью - 8 знаков
double f=NormalizeDouble((3.1415926535897*7/10),8);
Print("f= ", f);
при запуске в журнале отражается точность 4 знака