Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 240

 

Der produktivste und kürzeste Weg, den Wochentag nach der Uhrzeit zu bestimmen:

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

gibt einen Wert zwischen 1 und 7 zurück

1 - Montag

...

7 - Sonntag

 
Nikolai Semko #:

7 - Sonntag

Es istnützlicher, wenn der Sonntag Null ist.

 
fxsaber #:

Es istnützlicher, wenn der Sonntag Null ist.

vielleicht dann:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+4 )%7;
}
 
Ein mathematisch identischer Ausdruck (hervorgehoben) kann in der Praxis zu unterschiedlichen Ergebnissen führen.
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 # : Mathematisch gesehen kann derselbe Ausdruck (hervorgehoben) in der Praxis zu unterschiedlichen Ergebnissen führen.

Solange die beiden Beträge gleich sind, ist jeder von ihnen ein gültiges Minimum. Betrachten wir MathMin(1, 1), so macht es keinen Unterschied, ob die Funktion den ersten (1) oder den zweiten (1) Wert liefert.

Die Rückgabe von 0,0 unterscheidet sich also nicht von -0,0.

Edit: Übrigens sind die beiden hervorgehobenen Ausdrücke NICHT identisch.
 
fxsaber #:
Mathematisch gesehen kann derselbe Ausdruck (hervorgehoben) in der Praxis unterschiedliche Ergebnisse liefern.

Nun, es sind unterschiedliche Ausdrücke, also ist das Ergebnis unterschiedlich. Was ist hier falsch?

Im ersten Fall: 0 < 0? Nein. Das zweite Argument wird zurückgegeben.

Im zweiten Fall: 0 <= 0? Ja, das erste Argument wird zurückgegeben.

 
Ihor Herasko #:

Es sind verschiedene Ausdrücke

fxsaber #:
Mathematisch derselbe Ausdruck
 
fxsaber #:

Die Zeichen < und <= scheinen unterschiedlich zu sein.....

 
Ihor Herasko #:

Die Zeichen < und <= scheinen unterschiedlich zu sein.....

Sie wollen das nicht verstehen.

 
fxsaber #:

Sie wollen nicht verstehen.

Ich verstehe auch nicht, warum die hervorgehobenen Ausdrücke mathematisch dasselbe sind.