Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Bedingung erfüllt wenn Nachkommastelle übereinstimmt? (http://www.expert-advisor.com/forum/showthread.php?t=3798)

Ca$hDigger 10.08.14 00:45

Bedingung erfüllt wenn Nachkommastelle übereinstimmt?
 
Hallo,

kurz und knapp die Frage:

Eine Bedingung soll erfüllt sein wenn zB die 4. Nachkommastelle = einer beliebigen int Zahl entspricht

Wie sähe das im Code aus?

// z.B.:
// if(4.Nachkommastelle??? == 7)

lg C$D

traderdoc 10.08.14 07:43

Jep, genau so!

Ca$hDigger 10.08.14 10:02

Zitat:

Zitat von traderdoc (Beitrag 27121)
Jep, genau so!

Naja genau so wohl nicht... sonst würde sich das ja "4.Nachkommastelle???" kompilieren lassen ;) Man muss doch erst die entsprechende Nachkommastelle auslesen (wie?) um damit dann die Werte auf Übereinstimmung zu vergleichen...?

lg C$D

traderdoc 10.08.14 11:11

Tja, das hattest Du im Vorfeld nicht geschrieben.
Natürlich muß man die 4.Stelle vorher auslesen und erst dann kann man diese Integerzahl mit einer anderen vergleichen.

Dann hätte Deine Frage besser lauten müssen: Wie kann man die 4. Kommastelle einer Dezimalzahl auslesen?

Antwort:

Die Dezimalzahl in einen String wandeln.
Die Position des Kommas oder Punktes ermitteln.
Die 4. Zeichenposition nach dem Komma oder Punkt auslesen.
Diesen Teilstring wieder in eine Interzahl wandeln.
Und dann vergleichen.

traderdoc

Ca$hDigger 10.08.14 16:40

Jawohl danke ich fange mal an:

Zitat:

Zitat von traderdoc (Beitrag 27125)
Die Dezimalzahl in einen String wandeln.

Code:

string value = DoubleToStr(1.28473418, 5);
Zitat:

Zitat von traderdoc (Beitrag 27125)
Die Position des Kommas oder Punktes ermitteln.

Hier braucht C$D noch ein wenig support...

Zitat:

Zitat von traderdoc (Beitrag 27125)
Die 4. Zeichenposition nach dem Komma oder Punkt auslesen.

Hier auch

Zitat:

Zitat von traderdoc (Beitrag 27125)
Diesen Teilstring wieder in eine Interzahl wandeln.

Code:

StringToInteger
klingt nach dem richtigen...

lg C$D

Ca$hDigger 10.08.14 23:48

Ich hab nun noch StringGetCharacter gefunden bzgl. der Auslesepositon aber so richtig komm ich nicht weiter mit der gesamten Sache... :confused:

lg C$D

traderdoc 11.08.14 13:14

Na dann sollst Du den Support bekommen.

string value = DoubleToStr(1.28473418, 5);
int pos = StringFind(value, ".", 0);
string substr = StringSubstr(value, pos+4, 1);
int zahl = StrToInteger(substr);

if (zahl == 7) {...}

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:05 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