Баги

 

1)Передайте разработчикам что MathCeil MathFloor это тип int а не double.

2)МТ4. После применения теплейта обрезается кусок ценовой шкалы. Исправляют 7-ой месяц. 

 

С чего это тип int?

Попробуйте привести к инту число 4294967296.123

 
stringo:

С чего это тип int?

Попробуйте привести к инту число 4294967296.123

Ну long.
 
eevviill8:
Ну long.

Не вопрос.

Как насчёт такого числа? 18446744073709551616.123

 
stringo:

Не вопрос.

Как насчёт такого числа? 18446744073709551616.123

С таким подходом давайте все числа double пусть будут.

Вдруг например пункты между ордерами надо будет сделать  1844674407370955161689987

Короче понятно. Застой.

 
eevviill8:

С таким подходом давайте все числа double пусть будут.

Вдруг например пункты между ордерами надо будет сделать  1844674407370955161689987

Короче понятно. Застой.

double для некоторых случаев не хватает.  8 байт, имеющихся в double, как выяснили разработчики процессоров, недостаточно. Считать иногда приходится не только пункты, а, например, вероятности по формулам комбинаторики с факториалами. Тогда нужен переход к логарифмам, и, конечно, использование математического сопроцессора, Floating point unit - FPU, для процессоров i386 назывался i387 (80-е годы) и был еще отдельным камнем с ножками. Cейчас встроен в один камень с арифметико-логическим устройством - АЛУ, основным процессором. В том числе в случае многоядерных (многопроцессорных) камней. В FPU аппаратно реализованы операции над вещественными числами, причем в 10-байтном представлении с 19 десятичными значащими цифрами. Числа и операции над ними в FPU в итоге развития под человеческие потребности стали соответствовать стандарту IEEE 754. Что касается задачи округления вещественного числа, оно реализуется разными способами:

Способы округления чисел по стандарту IEEE 754:   

  • Округление стремящееся к ближайшему целому.
  • Округление стремящееся к нулю.
  • Округление стремящееся к +∞
  • Округление стремящееся к -∞

  • А для выбора способа округления есть регистр управления FPU, где и задается нужный способ.

    Разработчики языков (сред) программирования, например, Borland International, также сочли нужным дать возможность хранить (именно хранить, изначально 10-байтный формат назывался "временным") данные в 10-байтном формате extended. То есть ввели в употребление этот тип данных вне FPU.

    У меня язык бы не повернулся назвать итоги многолетнего упорного труда тысяч людей застоем. Разработчики MQL4 правильно сделали, что передали имеющиеся в компьютере возможности, а не стали выдумывать что-нибудь более слабое, ограниченное из соображений размаха курсов валютных пар и точности их представления в терминале.

     
    Vlad143:

    double для некоторых случаев не хватает.  8 байт, имеющихся в double, как выяснили разработчики процессоров, недостаточно. Считать иногда приходится не только пункты, а, например, вероятности по формулам комбинаторики с факториалами. Тогда нужен переход к логарифмам, и, конечно, использование математического сопроцессора, Floating point unit - FPU, для процессоров i386 назывался i387 (80-е годы) и был еще отдельным камнем с ножками. Cейчас встроен в один камень с арифметико-логическим устройством - АЛУ, основным процессором. В том числе в случае многоядерных (многопроцессорных) камней. В FPU аппаратно реализованы операции над вещественными числами, причем в 10-байтном представлении с 19 десятичными значащими цифрами. Числа и операции над ними в FPU в итоге развития под человеческие потребности стали соответствовать стандарту IEEE 754. Что касается задачи округления вещественного числа, оно реализуется разными способами:

    Способы округления чисел по стандарту IEEE 754:   

  • Округление стремящееся к ближайшему целому.
  • Округление стремящееся к нулю.
  • Округление стремящееся к +∞
  • Округление стремящееся к -∞

  • А для выбора способа округления есть регистр управления FPU, где и задается нужный способ.

    Разработчики языков (сред) программирования, например, Borland International, также сочли нужным дать возможность хранить (именно хранить, изначально 10-байтный формат назывался "временным") данные в 10-байтном формате extended. То есть ввели в употребление этот тип данных вне FPU.

    У меня язык бы не повернулся назвать итоги многолетнего упорного труда тысяч людей застоем. Разработчики MQL4 правильно сделали, что передали имеющиеся в компьютере возможности, а не стали выдумывать что-нибудь более слабое, ограниченное из соображений размаха курсов валютных пар и точности их представления в терминале.

    Хоть-бы выражался попроще, ведь этот клон забаненного может перепутать процессор с камнями из каменного века...))))))))
     
    AlexeyVik:
    Хоть-бы выражался попроще, ведь этот клон забаненного может перепутать процессор с камнями из каменного века...))))))))
    Думал, но подходящего слова все равно не нашел. Также как и отличие между сервером как компьютером и сервером баз данных или же сервером MT4, так и тут - как назвать процессор физический (с ножками - контактами), а как логический, чтобы было коротко и понятно, не знаю.
     
    Vlad143:

    .... Разработчики MQL4 правильно сделали...

    Возвращаемое значение

    Числовое значение, представляющую наименьшее целое число, которое больше или равно val.

     
    eevviill8:

    Возвращаемое значение

    Числовое значение, представляющую наименьшее целое число, которое больше или равно val.

    Вы имеете в виду разницу между максимальным целым числом в формате double около 10^308 и максимальным значением переменных целочисленных типов около 2*10^19? То есть в какую переменную принимать результат MathCeil или как проверить, что он поместится в long или ulong?

    Или речь о том, что наименьшим это целое будет не всегда из-за разрешающей способности мантиссы double 52 бита?

     
    eevviill8:
    Не манди.

    Ты-же ушёл на аглицкий форум и обещал не возвращаться...

    eevviill8:

    Возвращаемое значение

    Числовое значение, представляющую наименьшее целое число, которое больше или равно val.

    Целое число не значит тип int а всего лишь отсутствие дробной части числа.