Округление чисел в МТ4 через NormalizeDouble - страница 5

 
Dmitry Fedoseev:

Вот ваш код:

 Вместо 2 поставить 3 и будет 0.036

Так получилось! Спасибо. Нормализирую до 3-х знаков, а потом обрезаю лишние цифры после запятой.

Подскажите, есть стандартная функция обрезать Н цифр после запятой? Как StringSubStr только если это дробное число. 

 
Roman Starinskij:

Так получилось! Спасибо. Нормализирую до 3-х знаков, а потом обрезаю лишние цифры после запятой.

Подскажите, есть стандартная функция обрезать Н цифр после запятой? Как StringSubStr только если это дробное число. 

Если речь об обрезке цифр при выводе на экран (в журнал), то для этого есть DoubleToString().
 
Ihor Herasko:
Если речь об обрезке цифр при выводе на экран (в журнал), то для этого есть DoubleToString().

Не. DoubleToString работает точно так же как NormalizeDouble().

 
Roman Starinskij:

Так получилось! Спасибо. Нормализирую до 3-х знаков, а потом обрезаю лишние цифры после запятой.

Подскажите, есть стандартная функция обрезать Н цифр после запятой? Как StringSubStr только если это дробное число. 

Нет такой функции за ненадобностью. Неправильный у вас калькулятор.
 
Roman Starinskij:

Подскажите, есть стандартная функция обрезать Н цифр после запятой? Как StringSubStr только если это дробное число. 

 Я пользуюсь такой, но она 'нестандартная':

//+------------------------------------------------------------------+
//| Double Crop function                                             |
//+------------------------------------------------------------------+
double DoubleCrop(double value,int crop)
  {
   string ValueToString="";
   ValueToString=DoubleToString(value,crop);
   return StringToDouble(ValueToString);
  }
//+------------------------------------------------------------------+
 
lilita bogachkova:

 Я пользуюсь такой, но она 'нестандартная':

Шо за гениальный ход?

string ValueToString="";
   ValueToString=DoubleToString(value,crop);
 
lilita bogachkova:

 Я пользуюсь такой, но она 'нестандартная':

Вот только написал, DoubleToString не обрезает, а работает так же как NormalizeDouble - округляет. Не... мы на бульдозере
 

Глюк обнаружился:

   Alert(
         DoubleToStr(1.15,1)+" "+
         DoubleToStr(1.25,1)+" "+
         DoubleToStr(1.35,1)+" "+
         DoubleToStr(1.45,1)
         );

 Результат: 1.1 1.3 1.4 1.5

C 1.15 произошло отбрасывание, а со стальными числами округление. 

 
Dmitry Fedoseev:

Глюк обнаружился:

 Результат: 1.1 1.3 1.4 1.5

C 1.15 произошло отбрасывание, а со стальными числами округление. 

Да, надо признать использую не проверяя  результат :(((
 

Пока разработчики не уберут

это

StringLen

 Количество символов в строке без учета завершающего нуля. 

 

то ничего не поделаешь с обрезанием.