Bug beim Umrechnen??
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Zusammen,
versuch grad ne einfache BE Funktion hinzuklatschen like: Code:
void BE_Check( int i)//zuvor wird die Ordernummer ermitteln und durch i weitergegeben Im Anhang seht ihr was ausgegeben wird : 1: Zeigt in Digitform das die Posi 25,4 Punkte vorne liegt 2 und 3 versetzt jeweils eine Kommastelle nach vorne,wenn es über 10 Punkte im Positiven Bereich geht. Kann mir das mal bitte einer erklären??? Is das ein Bug? Wenn ja wie is der zu umgehen?? Build 1090 is meine aktuelle Plattform . |
Wieso, stimmt doch.
1. 2,54*10-3 2. 2,54*10-7, weil 1. * 10 * 10-5 3. 2.54*10-8, weil 1. * 10-5 Alles ok. traderdoc |
Zitat:
1 . Gibt den Wert Aktueller Kurs - Einstiegskurs wieder und ist 25,4 Punkte im Plus und wird mit 0.00254 wiedergegeben 2. Gibt den Wert Aktueller Kurs - Einstiegskurs * 10 wieder und wird mit 2.5399....987e-07 3. Gibt den Wert Aktueller Kurs - Einstiegskurs * Point wieder,Punktwert und wird mit 2.5399....987e-08 wieder gegeben unter 10 Punkte im Plusberiech bekomm ich bei 2 und 3 auch die korrekten Punkte im Plus angezeigt, sobald es über 9 Punkte geht, eben die mir 2.5399....987e-07 oder-08 , anscheinend versteh ich die Darstellung nicht korrekt, wenn du sagt " Es ist alles Ok" . was ist denn mit e-07/e-08 gemeint? Ich brauche 25.4 als Rückgabewert. Hab den MT4 gewechselt, meint Code hat bei anderen Versionen geklappt. Wäre klasse wenn du das kurz erläutern könntest |
Ich habe keine Ahnung, wo das Problem liegt?
Besser wäre es, wenn Du mal ein paar Beispiele bringen würdest, was richtig und was falsch wäre. traderdoc |
Lass diese E- Werte weg und benutz double. Oder soll da irgendwas weit über 2.000.000.000 sein? :confused:
|
Zitat:
traderdoc |
Er benutzt anscheinend exponential-Werte. Oder wies heißt. Ist das nötig? Reicht double nicht? :confused:
https://de.wikipedia.org/wiki/Exponentialfunktion Zitat:
|
Ja und was ändert das an den Zahlen?:
0,00254 0,000000254 0,0000000254 traderdoc |
ok hier ist der ganze Code, natürlich hab ich double benutzt das reicht ja locker als Datentyp aus.... 1 2 und 3 habe ich rein gehauen um zu schauen was er mir eben wieder gibt.
Code:
extern double BE_LEVEL = 20.0; Dadurch erfüllt meine If niemals die Bedingung. Warum werden mit 25.4 Punkte nicht genauso angezeigt?? ich bekomme anstatt dessen 2.54....... genau das is mein Problem , ich hoffe jetzt ist es verständlich.... |
Das sehe ich erst jetzt!
Code:
extern double BE_LEVEL = 20.0; Warum? Weil die if- Abfrage nie true ergibt. Warum? Weil der linke Teil immer viel!! < 1 und der rechte immer >= 1 sein wird. Stattdessen müsste das lauten: Code:
if( (Bid-OrderOpenPrice())/10/Point >= BE_LEVEL) traderdoc |
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:55 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