Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43263
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: TS_6
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 319
Gesamt: 320
Team: 0
Team:  
Benutzer:  TS_6
Freunde anzeigen

Empfehlungen

Like Tree4Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 20.11.13
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Mit double immer +1 vom string lässt sich soweit gut arbeiten aber eine Sache ist noch ein großes Problem, die double Werte werden auf die 4. Nachkommastelle gerundet. Also ein string Wert von 5,555555 wird zu einem double Wert von 5,5556

Ich würd mich riesig freuen wenn jmd dazu noch eine Lösung einfällt.

LG C$D
  #12 (permalink)  
Alt 20.11.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Sorry, es muß in der beiden!! []-Klammer die Anzahl der Elemente, wie in dem String auch enthalten sind, stehen, also in Deinem Beispiel sind es natürlich 5 Elemente!

Code:
double irgendwas[5];
string wert[5];
int cnt = 0;
string str;
wert[0] = "";
string variable = 111+","+222+","+333+","+444+","+555;
for (int i = 0; i < StringLen(variable); i++) {
   str = StringSubstr(variable, i, 1);
   if (str == ",") {
      cnt++;
      wert[cnt] = "";
      continue;
   }
   wert[cnt] = wert[cnt] + str;
   irgendwas[cnt] = StrToDouble(wert[cnt]);
}
"Mit double immer +1 vom string lässt sich soweit gut arbeiten aber eine Sache ist noch ein großes Problem, die double Werte werden auf die 4. Nachkommastelle gerundet. Also ein string Wert von 5,555555 wird zu einem double Wert von 5,5556"

Dann mußt Du bei der Alertausgabe die double-Zahl wieder in einen String umwandeln, weil die Alertausgabe nach der 4. Stelle rundet, also:

Alert(DoubleToStr(zahl, 6));

Die 6 ist die Anzahl der Nachkommastellen.

traderdoc
Ca$hDigger likes this.
  #13 (permalink)  
Alt 21.11.13
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Wieso Alertausgabe ich möchte eigentlich nur die Werte des gegebenen strings als vollständige double´s weiternutzen. Grundlage ist das ich von extern ein string in den EA bekomme der Werte enthält. Da ich diese Werte im EA nutzen will müssen sie den selben Typ bekommen sonst gibts "different types in comparison" deshalb soll es zu double Werten werden. Das funktioniert, aber wie gesagt, es wird auf die 4. Nachkommastelle gerundet. Hab mal ein Comment eingefügt dann sieht man das mit dem Verlust der Nachkommastellen nach der 4. Stelle siehe Screenshot

Code:
string variable = 1.11111111+","+2.22222222+","+3.33333333+","+4.44444444+","+5.55555555;
   
double irgendwas[5];
string wert[5];
int cnt = 0;
string str;
wert[0] = "";

for (int i = 0; i < StringLen(variable); i++) {
   str = StringSubstr(variable, i, 1);
   if (str == ",") {
      cnt++;
      wert[cnt] = "";
      continue;
   }
   wert[cnt] = wert[cnt] + str;
   irgendwas[cnt] = StrToDouble(wert[cnt]);
   
   
   Comment("String = ",variable,"                   double-wert 1 = ",irgendwas[0], "   wert 2 = ",irgendwas[1], "   wert 3 = ",irgendwas[2], "   wert 4 = ",irgendwas[3], 
"   wert 5  = ",irgendwas[4]);
Angehängte Grafiken
Dateityp: jpg screen.jpg (40,7 KB, 4x aufgerufen)
  #14 (permalink)  
Alt 21.11.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Egal ob Alert oder Comment, der rundet immer nach der 4.Stelle, rechnet aber intern mit allen Kommastellen, die double so hergibt.
Kannst Du doch so kontrollieren, wie ich geschrieben hatte mit
DoubleToStr(Zahl, nachkommastellen);
Damit kannst Du auch im Comment alle Nachkommastellen anzeigen lassen.

traderdoc
Ca$hDigger likes this.
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, string, string auslesen


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 11:41 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------