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), und wieso ist der Rest nicht 5. Kann mir das bitte jemand erklären? Danke. AVT |
Der % Operator ist ja der Modulo Operator. Also 5%2 ergibt 1 da die zwei zweimal gerade in die 5 passt und der Rest der übrig bleibt 1 ist (5-4 =1)
10%7 würde somit 3 liefern, da dass der Rest der Division ist. Digits wird vom Typ integer sein. Daher kommt nur das ganzzahlige Ergebnis zurück und der Rest wird "verschluckt" |
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. :confused: Keine Ahnung, brauch auch Mathe-Nachhilfe. :rolleyes: |
Zitat:
|
Zitat:
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 |
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 |
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.
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:38 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum