|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Mathe Nachhillfe gesucht
Eigentlich suchte ich nach der Erklärung, was
_Digits%2 "in Normalsprache bedeutet/ausrechnet". Soweit ich gekommen bin, ist das wohl "Rest von _Digits geteilt durch 2". Also habe ich mir ein Print gemacht - das aber ergibt völlig widersprüchliche Angaben: Code:
Print(" Digits=",DoubleToStr(_Digits,0), " Digits/2=",DoubleToStr((_Digits/2),_Digits), " Digits%2=",DoubleToStr(Digits%2,_Digits) ); // ==> Result EURUSD (Digits=5) // Digits=5 // Digits/2=2.00000 // Digits%2=1.00000 // ==> Result AUDJPY (Digits=3) // Digits=3 // Digits/2=1.000 // Digits%2=1.000 und wieso ist der Rest nicht 5. Kann mir das bitte jemand erklären? Danke. AVT Geändert von AVT (08.08.20 um 14:20 Uhr) Grund: 2 Nullen zu viel im Result |
|
|||
Zitat:
Daß aber bei ner Division von Integer zwingend ein Integer-Ergebnis rauskommt, finde ich ziemlich merkwürdig - heißt ja, wenn ich eine Periode von 25 Tagen um die Hälfte kürze (also /2) kommt (rein rechnerisch 12,5 raus, was dann gerundet (,5 nach oben) wird und dann in 13 Tagen endet - ohne daß ich mich dagegen wehren kann. Bedeutet wohl dann gleichzeitig, daß ich die Periode dann als double setzen muß, um wenigstens selber zu bestimmen, ob auf- oder abgerundet wird. AVT |
|
|||
Hallo.
Hab über nen Weg nach gedacht, wie man von beliebigen double Werten rausfinden kann, ob sie gerade oder ungerade sind. Das einfachste wär wohl, sie so oft mit 2 zu dividieren oder zu multiplizieren, bis die letzte Stelle 0 oder 5 ist. Keine Ahnung, brauch auch Mathe-Nachhilfe. |
|
||||
Zitat:
|
|
|||
Stimmt!
Nun, bei der Division einer Integerzahl stolpern tatsächlich viele und ja, die Integerzahl müsste dann vorher in eine double gewandelt werden. Dann klappts auch mit der Kommastelle. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
||||
Zitat:
Ist 6 grade? MA-EA Lösungsweg: 6*2=12 12*2=24 24*2=48 Weitere Ergebnisse: 96,192,364,768,.....,422212465065984,...,usw Endet davon was mit 5 oder 0 -> Nein 6 ist somit ungerade! Mathematik ist schon was tolles oder? |
|
|||
Zitat:
Nehmen wir wieder die 6: 6/2=3 3/2 = 1,5 1,5/2=0,75 0,75/2=0,375 0,375/2=0,1875 Ich glaube fest daran, dass die letzte Stelle keine 0 ergeben wird. Nein halt doch! Man könnte ja auch 6/2=3.0 schreiben -> also dann doch eine gerade Zahl! Nehmen wir nun die 16: 16/2=8,0 Also auch eine gerade Zahl! Nun nehmen wir mal 17: 17/2 = 8,50 Endet auf 0 -> also auch eine gerade Zahl! @Indicator-Trading hatte gerade herausgefunden, dass die 6 ungerade sein muss. Hm, ich komme zu dem Ergebnis, es existieren nur gerade Zahlen, weil alle Divisionen auf eine 0 enden. Was nun Herr Gauß? traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Danke. AVT |
|
||||
Ich würde sagen dass das interne Abhandeln der Division abhängig vom Compiler ist. Manche erkennen das automatisch. Hier ist es halt leider nicht so intelligent das der Compiler erkennt, dass du eine Division durchführst und das direkte Ergebnis ausgeben möchtest.
|
Lesezeichen |
|
|