Вопросы от "чайника" - страница 158

 
Не подскажите как сгенерить magic так, чтобы он не повторялся ни среди открытых и отложенных ордеров  ни среди закрытых и удаленных ордеров?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

присвойте магику - тек. время в секундах (int)TimeCurrent();

Такого точно не будет

а если будет слишком грамоздкое для вас то можно поделить или отнять какую нибудь

числовую типа (int) константу :-)

 

Здравствуйте! 

Если заглянуть в справочник (МКЛ), то можно увидеть:

DBL_MAXМаксимальное значение, которое может быть представлено типом double
1.7976931348623158e+308

 

1.7976931348623158e+308 это число, у которого 309 целых разрядов! Конечно этого не может быть. Может я ошибаюсь? Но как тогда интерпретировать эту запись (  1.7976931348623158e+308  )?  

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

Здравствуйте! 

Если заглянуть в справочник (МКЛ), то можно увидеть:

DBL_MAXМаксимальное значение, которое может быть представлено типом double
1.7976931348623158e+308

 

1.7976931348623158e+308 это число, у которого 309 целых разрядов! Конечно этого не может быть. Может я ошибаюсь? Но как тогда интерпретировать эту запись (  1.7976931348623158e+308  )?  

Может, так - максимальное число с плавающей точкой, которое влазит в 8 байт памяти.
 
Silent:
Может, так - максимальное число с плавающей точкой, которое влазит в 8 байт памяти.
Без сомнения, именно так. Но 1.7976931348623158e+308 это сколько? Выше привел некоторые размышления, там что-то не так, хотелось бы понять что именно.
 
220Volt:
Без сомнения, именно так. Но 1.7976931348623158e+308 это сколько? Выше привел некоторые размышления, там что-то не так, хотелось бы понять что именно.

Вроде 553.6894855375932664...

"В вычислительных машинах показатель степени принято отделять от мантиссы буквой «E» (exponent). Например, число 1,528535047·10−25 в большинстве языков программирования высокого уровня записывается как 1.528535047E-25." 

http://ru.wikipedia.org/wiki/Плавающая_запятая 

PS Ошибся.

10*308=3080
1.7976931348623158*3080=5536.894855375932664 

Число с плавающей запятой — Википедия
  • ru.wikipedia.org
Число с плавающей запятой (или число с плавающей точкой) — форма представления действительных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Используемое наиболее часто представление утверждено в стандарте IEEE 754...
 
Silent:

Вроде 553.6894855375932664...

"В вычислительных машинах показатель степени принято отделять от мантиссы буквой «E» (exponent). Например, число 1,528535047·10−25 в большинстве языков программирования высокого уровня записывается как 1.528535047E-25." 

http://ru.wikipedia.org/wiki/Плавающая_запятая 

PS Ошибся.

10*308=3080
1.7976931348623158*3080=5536.894855375932664 

Не, чего-то не стыкуется:

 

double d = 5536.894855375932664;   // предпологаемый лимит
Alert(d);
d = 6536.894855375932664;          // число больше лимита
Alert(d);

Alert: 5536.894855375933

 Alert: 6536.894855375933

 P.S.  5536 это очень мало. 308 должна обозначать именно степень 

 
1.7976931348623158e+308 =  1.7976931348623158 * 10^ 308 (на 10 в степени 308)
 
220Volt:

Не, чего-то не стыкуется:

Alert: 5536.894855375933

 Alert: 6536.894855375933

 P.S.  5536 это очень мало. 308 должна обозначать именно степень 

а так
     double x,y,z;
     x=MathPow(
     y=1.7976931348623158,         // основание 
     z=3080      // показатель степени
     );
     Print("x = ",x);
похоже, переполнение
2012.06.10 22:27:28     S (EURUSD,H1)   x = 1.#INF

приведение

     int a=x;
     Print("a = ",a);

даёт

2012.06.10 22:34:25     S (EURUSD,H1)    a = 0
сам запутался :)
 
Karlson:
1.7976931348623158e+308 =  1.7976931348623158 * 10^ 308 (на 10 в степени 308)

Это верно?

10*308=3080
1.7976931348623158*3080=5536.894855375932664