Баги - страница 2

 
Vlad143:

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

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

Я про то что когда то тоже долго спорил с теоретиками про то что почему Volume имеет тип double а не long.

Всё таки сделали long.

Это аналогично.

 

Вы вкурсе что такое практичность и абсурд?

P.S. В крайнем случае можно было сделать very long 

 

Вы видимо, не в курсе, что объёмы всегда были типа long. Да только не было такого типа в старом MQL4.

Целочисленного типа int не хватало для хранения объёмов месячного таймфрейма, поэтому мы были вынуждены использовать double, практик вы наш.

По поводу функций функций MathFloor и MathCeill. Как вам правильно сказали мы не стали их портить. Так как у сопроцессора есть соответствующие инструкции.

Если хотите целочисленности, то это делается очень просто

double dvalue=12345.6789
long   floor=(long)dvalue;
double fract=dvalue-floor;
long   ceil=floor+(fract>0.0)?1:0;

До абсурда доводите именно вы со своим very long

 

Вы видимо, не в курсе, что объёмы всегда были типа long. Да только не было такого типа в старом MQL4.

:))))))))))))

 
eevviill8:

Я про то что когда то тоже долго спорил с теоретиками про то что почему Volume имеет тип double а не long.

Всё таки сделали long.

Это аналогично.

 

Вы вкурсе что такое практичность и абсурд?

eevviill8:

P.S. В крайнем случае можно было сделать very long Извит

Слова very long мне незнакомы. То, о чем я говорил, досталось пОтом. Без нужды я бы не стал этим интересоваться. Когда вы пишете программу, которой будет пользоваться неопределенный круг лиц, ничего нельзя делать наспех. Конечно, я могу рассказать любому желающему теорию реляционных баз данных, но за теоретика никак не сойду.

Попробуйте поставить себя на место разработчиков. Вы когда-нибудь видели, чтобы терминал завалился из-за Вашего деления на ноль? Как разработчики это решают, не знаю, но будьте уверены, они обкладывают вызовы арифметических действий еще и проверкой на переполнение порядка.