Вопрос по программированию в MQL4

 
Срочно требуется помощь !!  Аксакалы MQL выручайте !!!
Функция NormalizeDouble:
как ее правильно написать чтобы выводила с требуемой точностью - 8 знаков

double f=NormalizeDouble((3.1415926535897*7/10),8);
Print("f= ", f);

при запуске в журнале отражается точность 4 знака
 
Print(DoubleToStr(3.1415926535897*7/10,8));
 
Shelma >>:
Срочно требуется помощь !! Аксакалы 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-го знака, вот и приходиться переводить в стринг.

 
Urain писал(а) >>

Попробуй вот так:

функция не только нормализует, переводит в стринг но и делает отступ если число больше нуля(для того чтоб небыло сдвига при отображении минуса).

зы Вся проблема в том что нормализация то идёт нормально а вот отображение только до 4-го знака, вот и приходиться переводить в стринг.


А DoubletoStr() уже не катит?

 
Vinin >>:


А DoubletoStr() уже не катит?

Дубль то стринг тупо зальёт то количество знаков которое есть в наличии, 0.1 имеет один знак после запятой, 0.12 два

я моя функция табличная (ею можно стоить в txt таблицы, причём сдвига никакого не будет) указал точность и вперёд.

 
Urain писал(а) >>

Дубль то стринг тупо зальёт то количество знаков которое есть в наличии, 0.1 имеет один знак после запятой, 0.12 два

я моя функция табличная (ею можно стоить в txt таблицы, причём сдвига никакого не будет) указал точность и вперёд.


Нет только выравнивания

string DoubleToStr( double value, int digits)
Преобразование числового значения в текстовую строку, содержащую символьное представление числа в указанном формате точности.

И зачем огород городить.
 
Глупый спор кто, что умеет.Человек не знал как в Print число вставить. А мы умники ему универсальную функцию предложили.
 
Vinin >>:


Нет только выравнивания

string DoubleToStr( double value, int digits)
Преобразование числового значения в текстовую строку, содержащую символьное представление числа в указанном формате точности.

И зачем огород городить.

Виктор если ты четырёхстрочную функцию называешь "огород городить" тогда ой.

 
Urain писал(а) >>

Виктор если ты четырёхстрочную функцию называешь "огород городить" тогда ой.


Николай, я просто не понимаю зачем создавать для себя дополнительный тормоз, когда есть стандартная функция. Возможно ты про нее просто забыл.
 
Vinin >>:


Николай, я просто не понимаю зачем создавать для себя дополнительный тормоз, когда есть стандартная функция. Возможно ты про нее просто забыл.

Поддерживаю. Тут в соседней ветке про DLL говорили,так не написать ли на эту тему и DLL возможности будут очень большие.

Причина обращения: