Скачать MetaTrader 5

Как преобразовать Double в Integer?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
kolega
15
kolega  
В попытке вычислить персентиль столкнулся с такой проблемой: в аргументе у массива должна быть переменная типа Integer, а при вычислении персентили получается значение типа Double, как преобразовать? Я пока на данный момент нашел решение через преобразование Double в String, а потом в Integer, но это как то не хорошо. Может кто подскажет другой способ?
Вот как выглядит у меня вычисление 10-ой персентили
int n;
double Array1[n], x;
ArraySort(Array1); x=Array1[StrToInteger(DoubleToStr(MathRound(n*0.1),0))];
Andrey Khatimlianskii
56502
Andrey Khatimlianskii  
Насколько я помню, можно просто взять инт, и прировнять ему дабл.
Примерно так:
int x; double n = 1.1; x = n; //x теперь = 1
Vladyslav Goshkov
2155
Vladyslav Goshkov  
komposter:
Насколько я помню, можно просто взять инт, и прировнять ему дабл.
Примерно так:
int x; double n = 1.1; x = n; //x теперь = 1
Вобщем смотря, что нужно. Более правильно
х = MathCeil(n);
Christo Tsvetanov
990
Christo Tsvetanov  
или:

x = MathRound(n);
kolega
15
kolega  
Itso:
или:

x = MathRound(n);
так я и применил MathRound, но при Array1[(MathRound(n*0.1),0)] -выдается ошибка - в аргументе требуется переменная типа Integer
MetaQuotes
Админ
25054
Renat Fatkhullin  
KOlegA:
Itso:
или:

x = MathRound(n);
так я и применил MathRound, но при Array1[(MathRound(n*0.1),0)] -выдается ошибка - в аргументе требуется переменная типа Integer
Просто упростите выражение путем выноса расчета за квадратные скобки.
Zaebali_Suki2
39
Zaebali_Suki2  

ПРИВЕТ ФОРУМНЫЕ ПИДОРАСЫ!!!
НЕ ПОРА ЛИ С УТРЕЦА,
ХУЙ СОСУНУТЬ ВАМ С ЛЕГОНЦА?
(ПОРА ПОРА)

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