Операция деления !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 
Верный ответ получается у z2
Какие у вас правила деления? как мне 1 разделить на 10 получить 0.1?
Мне что, каждый разкаждое целое число умножать на 1.0, что бы получать десятичные значения?
МКЛ4 разве не видит что результат должен быть типа double, а не int?
А если так, то сам должен преобразовать (неявно) н амомент вычисления оподобного выражения аргументы к double, либо результат деления к double, в случае, если результат деления одного int на другой int имеет остаток.

Пример
   int x=1, y=10;
   double z1=0, z2=0, z3=0;
   
   z1=x/y;
   z2=1.0*x/(1.0*y);
   z3=1.0*(x/y);

   Comment(
   "z1=x/y = ",z1,"\n",
   "z2=x/y = ",z2,"\n",
   "z3=x/y = ",z3,"\n",
   );
 
Все правильно.

Если в выражении стоят целые,
то будут использованы целочисленные операции,
пока не встретится вещественное число.

Самый простой вариант
z = 1.0 * x / y;
 
Не менее весело может получиться при умножении.
z = x * y;

Если x и y большие числа (миллионы),
то наверное можно даже отрицательное цисло получить при перемножении положительных.

Причем в С по моему даже диагностики о переполнении не будет,
Ну а поскольку MQL старается подражать С, то и тут наверное.
(не проверял).
 

А если так, то сам должен преобразовать (неявно) н амомент вычисления оподобного выражения аргументы к double, либо результат деления к double, в случае, если результат деления одного int на другой int имеет остаток.


А вот этого не надо :) мы пока не в Матрице, NEO, чтобы машины сами решали, целочисленное или вещественное деление использовать.
 

А если так, то сам должен преобразовать (неявно) н амомент вычисления оподобного выражения аргументы к double, либо результат деления к double, в случае, если результат деления одного int на другой int имеет остаток.


А вот этого не надо :) мы пока не в Матрице, NEO, чтобы машины сами решали, целочисленное или вещественное деление использовать.


ТУТ РЕШАТЬ НЕЧЕГО, ЭТО ЯВНО ВИДНО, Т.Е.,
ЕСЛИ РЕЗУЛЬНАТ ДЕЛЕНИЯ ОДНОГО ЦЕЛОГО НА ДРУГОЕ ЦЕЛОЕ ДРОБНЫЙ, И ДОЛЖЕН БЫТЬ ПРИСВОЕТ ПЕРЕМЕННООЙ ТИПА DOUBLE (А НЕ INT), ТО ОТСЕКАТЬ ДРОБНУЮ ЧАСТЬ НЕ НУЖНО!!!!!!!
иначе это геморой при подсчете ср. арифм. типа int, и т.д. !!!!!!!!!!!!!!!!!!!!!!!!!!

и может есть сымсл ввести доп ф-ции, которые:
1) от рез-тата будет отсекать целую часть;
2) от рез-тата будет отсекать дробную часть и преобразовывать к целому типу;
 
Эта штука действительно большая проблема.

Большинство пользователей МТ не являются профессиональными программистами (тем более на С),
так что много народу много костей положит на таких "особенностях" языка.
 
Эта штука действительно большая проблема.

Большинство пользователей МТ не являются профессиональными программистами (тем более на С),
так что много народу много костей положит на таких "особенностях" языка.


Не плохо было бы вылоэить здесь эти тонкости, т.к. :-(
 
ЕСЛИ РЕЗУЛЬНАТ ДЕЛЕНИЯ ОДНОГО ЦЕЛОГО НА ДРУГОЕ ЦЕЛОЕ ДРОБНЫЙ, И ДОЛЖЕН БЫТЬ ПРИСВОЕТ ПЕРЕМЕННООЙ ТИПА DOUBLE (А НЕ INT), ТО ОТСЕКАТЬ ДРОБНУЮ ЧАСТЬ НЕ НУЖНО!!!!!!!

К сожалению, это утверждение не верно.
 
Что значит неверно?
Что, президент указ издал, или ООН такую резолюцию приняло?

Все что вокруг есть - это условности, которые мы сами себе придумываем.
Человек просто высказал пожелание и свою точку зрения.
И с ним согласятся 99% пользователей вашей системы.
И я один из них ...
 
И с ним согласятся 99% пользователей вашей системы.

К сожалению, это не соответствует спецификации языка С.
Причина обращения: