Не могу справиться с вещественными числами

 

Я написал скрипт, который должен считать сколько баров из 1000 пересекли каждую цену и записывать итог в файл. Но в файле цены записываются с 15-ю знаками после запятой. Мне нужно чтобы записывались 2, 4 или 5 цифр после запятой в зависимости от инструмента и брокера. Я читал про проблему вещественных чисел, но так и не понял как ее решить. Пробовал функцию NormalizeDouble, но результата никакого. Помогите пожалуйста. Вот скрипт:

void OnStart()

  {

   int handle;

   handle=FileOpen("FindLevels.txt",FILE_CSV|FILE_WRITE,'\t');

   FileWrite(handle,"Cost","Bars Num");

//Ищем наименьшую цену за n свечей

   double lows[];

   CopyLow(Symbol(),Period(),0,1000,lows);

   double min=3000;

   for(int i=0; i<1000; i++)

     {

      if(lows[i]<min)

         min=lows[i];

     }

   Alert("Самая низкая цена за 1000 свечей = ",min);

//Ищем наибольшую цену за n свечей

   double highs[];

   CopyHigh(Symbol(),Period(),0,1000,highs);

   double max=0;

   for(int i=0; i<1000; i++)

     {

      if(highs[i]>max)

         max=highs[i];

     }

   Alert("Самая высокая цена за 1000 свечей = ",max);

   //Определяем сколько раз повторяется каждая цена

    for (double d = min; d <= max; d += SymbolInfoDouble(Symbol(), SYMBOL_POINT))

     {

       double a = 0.0;

       for(int i = 0; i < 1000; i++)

           if(d > lows[i] && d < highs[i])

               a+=1;

       FileWrite(handle, d, a);

     }


   FileClose(handle);

  }

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
Преобразование числового значения в текстовую строку.

string  DoubleToString(
   double  value,      // число
   int     digits=8    // кол-во знаков после запятой
   );
 
 
Vladon:
Большое спасибо!
Причина обращения: