Подскажите пожалуйста!

 

Не пойму как такое вообще может быть!!!

На Print выдает целое число равное 3, хотя результат должен быть 2,5.

Подскажите пожалуйста, в чем может быть проблема!

extern int n = 6;

int start()
  {
//----
  Print(fi1(n,n));
//----
  return(0);
  }
  
  double fi1(int x, int n)
  {
  return(x - (n + 1)/2);
  }

 
liza писал(а) >>

Не пойму как такое вообще может быть!!!

На Print выдает целое число равное 3, хотя результат должен быть 2,5.



double fi1(int x, int n)
{
return(x - (n + 1)/2);
}

Достаточно поменять описание функции

double fi1(double x, double n)
{
return(x - (n + 1)/2);
}

 
Vinin >>:

Достаточно поменять описание функции

double fi1(double x, double n)
{
return(x - (n + 1)/2);
}

Большое спасибо!!!

Просто в С++ это бы работало...

 
liza >>:

Большое спасибо!!!

Просто в С++ это бы работало...

Точно так же работало бы ;)

Вдогонку приведу код, который корректен как для c++ так и для mql

  double fi1(int x, int n)
  {
      return(x - (n + 1) / 2.0);
  }
 

Print(MathPow(2,0.0002));

А почему эта строка выдает 1.0001, а не 0.000000004?

 
liza писал(а) >>

Print(MathPow(2,0.0002));

А почему эта строка выдает 1.0001, а не 0.000000004?

Потому что правильный ответ 1.0001 :)

 

liza, поменяйте параметры местами


Integer, +1 =)

Причина обращения: