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)
-   -   probleme bei Divisionen (http://www.expert-advisor.com/forum/showthread.php?t=3428)

Deepack 24.01.14 22:11

probleme bei Divisionen
 
Hallo community,

es is möglicherweise eine blöde frage... aber
ich habe immer wieder probleme mit divisionen

mit echt einfachen divisionen
z.b. (70/100) -> kann jeder sofort im Kopf rechnen

aber was muss ich machen dass mir bei dieser Rechnung
das richtige Ergebnis ausgegeben wird?

ich erhalte nur 0 egal was ich mache

traderdoc 24.01.14 22:54

a = b/c

Dabei sollte a vom Typ double sein, sonst wird die Nachkommastelle gestrichen und es kommt 0 raus.

traderdoc

Deepack 25.01.14 10:53

hallo traderdoc
erstmal danke für deine antwort.

ja mit den double habe ich genau so herumgespielt
mir ist der hintergrund aber absolut unlogisch...

hier ein paar beispiele

double x, y, z;
y=70; z=100;
x=y/z -> 0,7 Richtig

double x;
int y, z;
y=70; z=100;
x=y/z -> 0 Falsch

double x;
x=70/100 -> 0 Falsch


ist doch eigenartig... was macht das für einen unterschied
kann man das erklären? ist in meinen augen alles das gleiche
bitte um korrktur wenn ich eine falsche ansicht vertrete

feelfree 25.01.14 11:23

Der neue Editor meldet in so einem Fall (Mix der Datentypen) gleich folgende Warnung:
"possible loss of data due to data type conversion"

Maschinenlogik und menschliche Logik sind eben zwei grundverschiedene Dinge. :)

Deepack 25.01.14 11:46

ok danke für diese aussage...

ich bin scheinbar noch aus den VisalBasic zeiten geschädigt...
dort wäre es völlig egal gewesen

traderdoc 25.01.14 19:33

Der Zieltyp muß auf jeden Fall double sein und mindestens einer der Operanten,

Beispiel:

double x = int y/ double z; //das würde gehen, aber auch
double x = double y/ int z;
double x = double y/ double z; //das auf jeden Fall

traderdoc


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