Einzelnen Beitrag anzeigen
  #8 (permalink)  
Alt 24.11.20
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ich schreibe es auch gern noch einmal:

Mit dieser Zeile

Print iVariable;

hätte es nie ein lauffähiges Programm gegeben. Somit steht die erste Frage: lautete die Zeile, die zum Ergebnis 0 geführt hatte so wie oben oder doch so:

Print (iVariable);

Wenn doch Print (iVariable); von vornherein stand, dann wäre es auch nahezu unwichtig, ob die Variable sVariable den Wert 20000 oder "20000" hatte. Es wäre so oder so 20000 ausgegeben worden und nicht 0.

Das zweite Frage ist, muss in der Parameter in der Funktion Print() ein string sein oder nicht? Nein, es muss kein String sein. Das kann auch ein Integer- oder Doublewert sein, selbst ohne Stringkonvertierung. Aber es müssten dann reine Zahlenwerte sein. Sobalb ein Buchstabe dabei ist, muss es in der Tat ein String sein.

Die explizite Typenreduzierung des MQL gestattet auch die Umwandlung z.B. eines Integer- oder Double-Wertes in einen String über die Formulierung:

double doublewert = 1.2345;
string wert = (string)doublewert;

Weil der Daten-Typ string die höchste Priorität unter einfachen Typen besitzt, ist damit auch eine explizite Reduzierung der Variable des Typs string zum jeden Zahlentyp zulässig.

D.h. selbst so etwas ist zulässig und funktioniert:

string str = "255,0,255";

Print(color(str));
oder auch
Print((color)str);

ergibt in beiden Fälle den Ausdruck: clrFuchsia

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.