Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 107

 
Hallo! Wie kann ich MQL effizient lernen? Ich suche nicht nach einfachen Wegen, ich will es einfach nur verstehen! Ich studiere Kovalevs Tutorial, schaue mir Videos an und versuche, die Codes zu wiederholen, die darin vorgeschrieben sind. Aber es gibt so viele Fehler, selbst wenn ich den Code aus dem Tutorial wiederhole..... . Mir wurde gesagt, dass diese Website mir helfen kann, also bin ich hier! Was sollte ich tun?
 
Vielleicht bin ich in Eile!
 
Alexey Kozitsyn:
Die Zeichenkette wird durch das Trennzeichen "." getrennt.

Keine schlechte Idee...

Alexey Viktorov:
Sie brauchen nichts zu demontieren. Ändern Sie es in String, um die richtige Zahl zu sehen. Für Berechnungen brauchen Sie nichts zu tun.

Wenn Sie Schwierigkeiten machen wollen, konvertieren Sie die Zeichenkette zurück in eine StringToDouble()-Zahl und multiplizieren Sie mit _Point, normalisiert auf die richtige Zahl, wahrscheinlich _Digits

Der Punkt ist, dass ich die Zeichenkette in 3 Zahlen zerlegen muss, und ich kann sie nicht in eine Zahl umwandeln - es stellt sich heraus, dass es eine sehr große Zahl für die Sprache ist.

Hier ist ein Beispiel für eine solche Nummer

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

Druckt die Zahl 11111111111111111104

 
FOTOGRAF14:
Vielleicht bin ich in Eile!
Also, keine Eile! Eile ist nur beim Fang von Flöhen geboten ((c) Armee-Humor).
 
-Aleks-:

Das Problem ist, dass man die Zeichenkette in 3 Zahlen zerlegen muss, sie aber nicht in eine Zahl umwandeln kann - sie erweist sich als eine sehr große Zahl für die Sprache.

Hier ist ein Beispiel für eine solche Nummer

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

Druckt die Zahl 11111111111111111104

Märchen...
 
Vitalie Postolache:
Erzählungen...

Versuchen Sie es selbst.

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);

double Test=CalcZ;
Print ("Test=",Test);

 
-Aleks-:

Versuchen Sie es selbst.

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);

double Test=CalcZ;
Print ("Test=",Test);

Ich meine "eine zu große Zahl", aber der Code ist auch falsch, wenn Sie also von Format zu Format konvertieren wollen, sollten Sie es so machen:

long CalcY=(long)StringToInteger("111111111111111111");
Print ("CalcY=",IntegerToString(CalcY));

Was Sie dort beklagen, ist keine große Zahl, sondern ein Fehler in der Textausgabe.

 
Vitalie Postolache:
Ich meine "eine zu große Zahl".
Eine zu große Zahl, um sie genau zu berechnen - wie erklären Sie sonst den Fehler am Ende der Zahl?
 
-Aleks-:
Eine zu große Zahl, um sie genau zu berechnen - wie erklären Sie sonst den Fehler am Ende der Zahl?
oben hinzugefügt.
 
Vitalie Postolache:
oben hinzugefügt.

Ich habe also dieses Problem - man kann eine lange Zeile einfügen, aber ich brauche die doppelte für die Kommaberechnung.