[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 451

 
bernc:

Das heißt, die Funktion F(8,5464.00) = 85464.00

8.5464/0.0001=85464
 
peshihod:

MathMod() ist Division. Der Rest ist reine Mathematik: Wenn das Ergebnis von TimeLocal() jede Sekunde (oder öfter) durch 20 geteilt wird, dann ist der Rest alle 20 Sekunden gleich Null.

Fazit: Ein und dieselbe Idee kann auf unterschiedliche Weise umgesetzt werden.


Warum muss ich das alle 20 Sekunden machen? Warum nicht mit 19 oder 17?

bool flag = true;
int i=0;
int w=0;
double sum;

int t=20;

int start()
{
sum=TimeLocal() / t;

if (flag)
{
while(i<20)
{

w=w+1;
Alert(+w,"-й, Результат TimeLocal-",+sum);
i++;
sum=sum/20;
Sleep(1000);

}
flag = false;
}
return(0);
}

Hier ist sie alle 11 Sekunden gleich Null. Geteilt durch 20, 20 Mal.

Entschuldigen Sie die nubischen Fragen, ich möchte sie nur verstehen.

 

Warum wird genau durch 20 geteilt?

Man muss teilen, bis man gewinnt ;)

 
peshihod:
8.5464/0.0001=85464

Ich danke Ihnen.

Aber das habe ich nicht gemeint, das Komma ist der Dreiklangstrenner und der Punkt trennt den Nachkommaanteil.

Ich habe eine Zeichenfolge 8.5464,00, die ich in eine Zahl umwandeln muss. StrToDouble(8,5464.00) ergibt 8.

F(8,5464.00) = 85464.00

 

Versuchen Sie diese Funktion

{

Suche nach einem Komma über https://docs.mql4.com/ru/strings/StringFind

Zusammensetzen einer neuen Zeichenfolge aus zwei Teilen: einer Zeichenfolge vor dem Komma und einer Zeichenfolge nach dem Komma https://docs.mql4.com/ru/strings/StringGetChar

In eine Zahl umwandeln StrToDouble()

}

 

Hier ist ein Paradebeispiel, genau wie Sie sagten.

Hmmm...

Wie kann es sein, dass es in 20 Sekunden genau Null wird? Siehe die Ortszeit unter der Nummer 8000000000... Was ist der knifflige Teil? Vielleicht muss ich einfach eine Pause einlegen, eh....

int i=0;
int e;
int w=0;
int start()

{
while(true)
{
e=MathMod(TimeLocal(), 20);
w=w+1;
Alert(+w,"-й, Результат MathMod-",+e);


Sleep(1000); // Спим 1-ну секунду


return(0);
}

 
rlx:

Versuchen Sie diese Funktion

{

Suche nach einem Komma über https://docs.mql4.com/ru/strings/StringFind

Zusammensetzen einer neuen Zeichenfolge aus zwei Teilen: einer Zeichenfolge vor dem Komma und einer Zeichenfolge nach dem Komma https://docs.mql4.com/ru/strings/StringGetChar

In eine Zahl umwandeln StrToDouble()

}

Gibt es keine andere Möglichkeit, oder dauert es sehr lange, bis diese Funktion ausgeführt wird.

 

Wenn MathMod(ALLES, 20) = 0 ist, bedeutet dies (wenn ich mich richtig erinnere)

dass JEDE ZIFFER durch 20 geteilt wird, ohne dass ein Rest übrig bleibt.

20 40 60 80 100 120 140 160 usw.

 
bernc:

Gibt es keine andere Möglichkeit, oder dauert diese Funktion sehr lange.



Ich weiß nicht, wie ich sonst das Komma aus der Zeichenkette entfernen kann.

 
bernc:

Ich danke Ihnen.

Aber das meinte ich nicht mit dem Komma, das die Dreiklänge trennt, und dem Punkt, der die Nachkommastellen trennt.

Ich habe eine Zeichenfolge 8.5464,00, die ich in eine Zahl umwandeln muss. StrToDouble(8,5464.00) wird in 8 geändert.

F(8,5464.00) = 85464.00



Nach Zeichen, durch String-Funktionen, entfernen Sie das Komma, dann StrToDouble().

Grund der Beschwerde: