Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Как протестировать программу перед покупкой?
Игорь
55
Игорь 2007.03.11 08:33 
Как получить целую часть из десятичного числа используя MQL-4?
Например 6,8989 => 6

---
C уважением.
Иван
1123
Иван 2007.03.11 08:40  
a=6.8989;
b=MathFloor(a);
Print(b);

Вывод: 6
timbo
3139
timbo 2007.03.11 09:18  
А можно и так:

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

Вывод: 6


Хотя конечно флор-функция правильнее.
Валерий
1436
Валерий 2007.03.11 09:28  
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, то получим то, что нужно.
Mihail Matkovskij
2191
Mihail Matkovskij 2015.03.11 08:36  
Valmars:

Функции double
double MathCeil( double x)
double MathFloor( double x)
double MathRound( double value)
возвращают наименьшее, наибольшее и ближайшее целое дробного числа.
Можно добавить ещё функцию
которая просто отбрасывает дробную часть x, независимо от знака.
Т.е., если присвоить переменной типа int , значение переменной типа double, то получим то, что нужно.
А как понять наибольшее и наименьшее ближайшее целое. В документации нет этого описания. На сколько я понимаю, наибольшим целым от числа 1.001 будет 2, а наименьшим, соответственно 1...? В прочем не знаю, это всего лишь догадки. Буду очень признателен, если поможете разобраться.
Ihor Herasko
8470
Ihor Herasko 2015.03.11 09:44  
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 

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