mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 240

 

시간별로 요일을 결정하는 가장 생산적이고 짧은 방법입니다:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+3 )%7+1;
}

1에서 7 사이의 값을 반환합니다.

1 - 월요일

...

7 - 일요일

 
Nikolai Semko #:

7 - 일요일

일요일이 0일 때더 유용합니다.

 
fxsaber #:

일요일이 0일 때더 유용합니다.

아마 그때는요:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+4 )%7;
}
 
수학적으로 동일한 표현식(강조 표시)이 실제로는 다른 결과를 생성할 수 있습니다.
template <typename T>
T MathMin1( const T Num1, const T Num2 )
{
  return(Num1 < Num2 ? Num1 : Num2);    
}

template <typename T>
T MathMin2( const T Num1, const T Num2 )
{
  return(Num1 <= Num2 ? Num1 : Num2);    
}

void OnStart()
{
  Print(MathMin1(0.0, -0.0)); // -0.0
  Print(MathMin2(0.0, -0.0)); // 0.0
}
 
fxsaber # : 수학적으로 동일한 표현식(강조 표시)이 실제로는 다른 결과를 가져올 수 있습니다.

두 금액이 같다면 둘 중 어느 것이든 유효한 최소값이 됩니다. MathMin(1, 1)을 생각해 보면 함수가 첫 번째(1) 또는 두 번째(1)를 반환하는지 여부는 다르지 않습니다.

따라서 0.0을 반환하는 것은 -0.0과 다르지 않습니다.

편집: 참고로 강조 표시된 두 표현식은 동일하지 않습니다.
 
fxsaber #:
수학적으로 동일한 표현식(강조 표시)이 실제로는 다른 결과를 가져올 수 있습니다.

표현식이 다르기 때문에 결과도 달라집니다. 뭐가 문제일까요?

첫 번째 경우: 0 < 0? 아니요. 두 번째 인수가 반환됩니다.

두 번째 경우: 0 <= 0? 예. 첫 번째 인수가 반환됩니다.

 
Ihor Herasko #:

다양한 표현

fxsaber #:
수학적으로 같은 표현식입니다.
 
fxsaber #:

<와 <= 기호가 다른 것 같습니다.....

 
Ihor Herasko #:

<와 <= 기호가 다른 것 같습니다.....

이해하지 못합니다.

 
fxsaber #:

이해하지 못합니다.

강조 표시된 표현식이 수학적으로 동일한 이유도 이해할 수 없습니다.