Скачать MetaTrader 5

как взять целую часть от double??

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

подскажите, вот например есть число типа double 3,158 как взять от него целую часть? которая будет служить указателем массива. В коде это примерно так:


double n1 = 3,158

int n2 = челая часть от n1

n3 = mass[n2];

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
Nazariy Stapyak
1749
Nazariy Stapyak  
double n1 = 3.158;

int n2 = (int)n1; // или просто n1;

double n3 = mass[n2]; // или mass[(int)n1];
Евгений
438
Евгений  
WWer:

благодарю, решение оказалось красивым))

а то я что только не перепробовал и в строку переводил потом в целочисленный тип, и MathCeil использовал но но все это выдавало ошибки

нашел выход это в цикле сравнивал и тем самым подбирал целочисленное число


спс

Документация по MQL5: Основы языка / Типы данных / Целые типы
Документация по MQL5: Основы языка / Типы данных / Целые типы
  • www.mql5.com
Основы языка / Типы данных / Целые типы - Документация по MQL5
pako
3320
pako  
vgeny:

подскажите, вот например есть число типа double 3,158 как взять от него целую часть? которая будет служить указателем массива. В коде это примерно так:


double n1 = 3,158

int n2 = челая часть от n1

n3 = mass[n2];

double  MathRound(
   double  value      // округляемое значение
   );
Aleksey
2493
Aleksey  
vgeny:

благодарю, решение оказалось красивым))

а то я что только не перепробовал и в строку переводил потом в целочисленный тип, и MathCeil использовал но но все это выдавало ошибки

нашел выход это в цикле сравнивал и тем самым подбирал целочисленное число


спс

  Это надо в анналы!
Andrey Litvichenko
1229
Andrey Litvichenko  
  Это надо в анналы!

+++
Евгений
438
Евгений  
pako:

сами то пробовали свой способ??

вы же видите на выходе тип double и как теперь это может быть указателем массива?? когда указатель это int

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
Евгений
438
Евгений  
pronych:
  Это надо в анналы!
господа анальщики как обычно что то да и оставят из своего анала
Slava
Модератор
6925
Slava  
vgeny:
господа анальщики как обычно что то да и оставят из своего анала

Не обижайтесь на парней. Стебки они

Самый простой способ взять целую часть вещественного числа - откастить его к целочисленному типу.

double n1 = 3,158
//int n2 = челая часть от n1
int n2 = int(n1);
Документация по MQL5: Основы языка / Типы данных / Целые типы
Документация по MQL5: Основы языка / Типы данных / Целые типы
  • www.mql5.com
Основы языка / Типы данных / Целые типы - Документация по MQL5
Viktor Mossekhin
14373
Viktor Mossekhin  
vgeny:

подскажите, вот например есть число типа double 3,158 как взять от него целую часть? 

  https://www.mql5.com/ru/docs/basis/types/casting

"В результате преобразования значения с плавающей точкой к целому типу дробная часть числа всегда отбрасывается. Если нужно округлить число с плавающей точкой до ближайшего целого числа (что во многих случаях является более полезным), необходимо использовать функцию MathRound()."

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
Евгений
438
Евгений  
stringo:

Не обижайтесь на парней. Стебки они

Самый простой способ взять целую часть вещественного числа - откастить его к целочисленному типу.

Да нее все ок, часть жизни, процесса  ..я понимаю..))

Спасибо всем кто поучаствовал, так сказать не прошел мимо, ответ на свой вопрос я получил и даже больше...  ))

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