Как получить целую часть из десятичного числа?

 
Как получить целую часть из десятичного числа используя MQL-4?
Например 6,8989 => 6

---
C уважением.
 
a=6.8989;
b=MathFloor(a);
Print(b);

Вывод: 6
 
А можно и так:

double a = 6.888;
int b = a;
Print(b);

Вывод: 6


Хотя конечно флор-функция правильнее.
 
mibmib писал (а):
Как получить целую часть из десятичного числа используя MQL-4?
Например 6,8989 => 6

Функции double
double MathCeil( double x)
double MathFloor( double x)
double MathRound( double value)
возвращают наименьшее, наибольшее и ближайшее целое дробного числа.
Можно добавить ещё функцию
int IntDouble(double x)   
   {return(x);}
которая просто отбрасывает дробную часть x, независимо от знака.
Т.е., если присвоить переменной типа int , значение переменной типа double, то получим то, что нужно.
 
Valmars:

Функции double
double MathCeil( double x)
double MathFloor( double x)
double MathRound( double value)
возвращают наименьшее, наибольшее и ближайшее целое дробного числа.
Можно добавить ещё функцию
которая просто отбрасывает дробную часть x, независимо от знака.
Т.е., если присвоить переменной типа int , значение переменной типа double, то получим то, что нужно.
А как понять наибольшее и наименьшее ближайшее целое. В документации нет этого описания. На сколько я понимаю, наибольшим целым от числа 1.001 будет 2, а наименьшим, соответственно 1...? В прочем не знаю, это всего лишь догадки. Буду очень признателен, если поможете разобраться.
 
cyberdev:
А как понять наибольшее и наименьшее ближайшее целое. В документации нет этого описания. На сколько я понимаю, наибольшим целым от числа 1.001 будет 2, а наименьшим, соответственно 1...? В прочем не знаю, это всего лишь догадки. Буду очень признателен, если поможете разобраться.

MathCeil(2.4) = 3.0,

MathFloor(2.4) = 2.0,

MathRound(2.4) = 2.0,

MathCeil(-2.4) = -2.0,

MathFloor(-2.4) = -3.0,

MathRound(-2.4) = -2.0 

Причина обращения: