Скачать MetaTrader 5

Как убрать дробные числа после запятой? MQL4

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
a_universal
94
a_universal  

Здравствуйте! Ребята, подскажите пожалуйста, кто знает: Как правильно преобразовывать дробные числа или переменные, так чтобы дробь после запятой либо вообще убрать, либо просто уменьшить эти дроби? 

Мне вот нужно сделать так чтобы такие переменные как:  AccountBalance() , AccountEquity() , AccountProfit() через Comment() на графике отображались с наименьшим количеством чисел после запятой.

Компилятор никаких ошибок не выдает. Функция NormalizeDouble() не помогает. Или я что-то не так делаю?

Вот кусок кода: 


int ticket1,ticket2,ticket3,ticket4;                                   

   double L,N,M; 

   bool od;

   string Broker=AccountCompany();

   int    Number=AccountNumber();

   double Balance=NormalizeDouble(AccountBalance(),0);

   double Equity=NormalizeDouble(AccountEquity(),0);

   double Profit=NormalizeDouble(AccountProfit(),0);


void OnTick()

  {

   Comment(" Брокер: "+Broker,                                            // Комментарии на графике

           "\n Счет N: "+DoubleToStr(Number),

           "\n Баланс: "+DoubleToStr(Balance),                                          

           "\n Средства: "+DoubleToStr(Equity),

           "\n Прибыль: "+DoubleToStr(Profit)                                          

           );

Числа после запятой

На графике видно множество нулей после запятой. Как бы мне их сократить?

igrok333
1401
igrok333  
a_universal:

Здравствуйте! Ребята, подскажите пожалуйста, кто знает: Как правильно преобразовывать дробные числа или переменные, так чтобы дробь после запятой либо вообще убрать, либо просто уменьшить эти дроби? 

Мне вот нужно сделать так чтобы такие переменные как:  AccountBalance() , AccountEquity() , AccountProfit() через Comment() на графике отображались с наименьшим количеством чисел после запятой.

Компилятор никаких ошибок не выдает. Функция NormalizeDouble() не помогает. Или я что-то не так делаю?

Вот кусок кода: 


int ticket1,ticket2,ticket3,ticket4;                                   

   double L,N,M; 

   bool od;

   string Broker=AccountCompany();

   int    Number=AccountNumber();

   double Balance=NormalizeDouble(AccountBalance(),0);

   double Equity=NormalizeDouble(AccountEquity(),0);

   double Profit=NormalizeDouble(AccountProfit(),0);


void OnTick()

  {

   Comment(" Брокер: "+Broker,                                            // Комментарии на графике

           "\n Счет N: "+DoubleToStr(Number),

           "\n Баланс: "+DoubleToStr(Balance),                                          

           "\n Средства: "+DoubleToStr(Equity),

           "\n Прибыль: "+DoubleToStr(Profit)                                          

           );

На графике видно множество нулей после запятой. Как бы мне их сократить?

даблтустринг
Vladimir Mametov
15664
Vladimir Mametov  

вот так

Balance=NormalizeDouble(Balance,_Digits);

или DoubleToStr(Balance,_Digits);

Vladimir Mametov
15664
Vladimir Mametov  
Vladimir Mametov:

вот так

Balance=NormalizeDouble(Balance,_Digits);

или DoubleToStr(Balance,_Digits);

точнее для Balance=NormalizeDouble(Balance,2);

или DoubleToStr(Balance,2);

_Digits там не нужно:)

Artyom Trishkin
Модератор
98940
Artyom Trishkin  
Vladimir Mametov:

точнее для Balance=NormalizeDouble(Balance,2);

или DoubleToStr(Balance,2);

_Digits там не нужно:)

При чём тут нормализация для печати?
a_universal
94
a_universal  

Спасибо, все заработало! )))

В DoubleToStr() сразу все заработало. Ну а  NormalizeDouble() так и не сработал..

a_universal
94
a_universal  
NormalizeDouble()  Нормалайз я вообще убрал. Он не пригодился!
Artyom Trishkin
Модератор
98940
Artyom Trishkin  
a_universal:
NormalizeDouble()  Нормалайз я вообще убрал. Он не пригодился!

Его тут и не нужно - он не для вывода на печать.

a_universal
94
a_universal  
Artyom Trishkin:

Его тут и не нужно - он не для вывода на печать.

Понял. Благодарю

Vitalii Ananev
12069
Vitalii Ananev  
a_universal:

Здравствуйте! Ребята, подскажите пожалуйста, кто знает: Как правильно преобразовывать дробные числа или переменные, так чтобы дробь после запятой либо вообще убрать, либо просто уменьшить эти дроби? 

Мне вот нужно сделать так чтобы такие переменные как:  AccountBalance() , AccountEquity() , AccountProfit() через Comment() на графике отображались с наименьшим количеством чисел после запятой.

Компилятор никаких ошибок не выдает. Функция NormalizeDouble() не помогает. Или я что-то не так делаю?

Вот кусок кода: 


int ticket1,ticket2,ticket3,ticket4;                                   

   double L,N,M; 

   bool od;

   string Broker=AccountCompany();

   int    Number=AccountNumber();

   double Balance=NormalizeDouble(AccountBalance(),0);

   double Equity=NormalizeDouble(AccountEquity(),0);

   double Profit=NormalizeDouble(AccountProfit(),0);


void OnTick()

  {

   Comment(" Брокер: "+Broker,                                            // Комментарии на графике

           "\n Счет N: "+DoubleToStr(Number),

           "\n Баланс: "+DoubleToStr(Balance),                                          

           "\n Средства: "+DoubleToStr(Equity),

           "\n Прибыль: "+DoubleToStr(Profit)                                          

           );

На графике видно множество нулей после запятой. Как бы мне их сократить?

Вместо нуля в функции NormalizeDouble(AccountProfit(),0); напишите цифру 2. Для баланса счета этого достаточно чтобы видеть рубли и копейки.

a_universal
94
a_universal  
Vitalii Ananev:

Вместо нуля в функции NormalizeDouble(AccountProfit(),0); напишите цифру 2. Для баланса счета этого достаточно чтобы видеть рубли и копейки.

Спасибо большое!

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий