MetaTrader 5 herunterladen

Division von Integer

Einloggen oder registrieren, um einen Kommentar zu schreiben
amando
709
amando  

Hallo,


kennt noch wer das

Problem, das wenn ich 2 integerzahlen dividiere dann bekomme ich keinen Wert raus? 

   int buytick =255;
   int selltick = 220;

   Print(buytick/selltick);


Als ergebnis bekomme ich entweder 0 oder 1


das bessert sich auch nicht wenn ich das ganze erweitere


int buytick =255;
   int selltick = 220;

   double Test = buytick/selltick;
   Print(buytick/selltick);

gleiches Ergebnis,


es funktioniert erst, wenn ich die int in double ändere


warum? 

das kann ja nur ein Fehler in der Plattform sein oder?



amando

Carl Schreiber
Moderator
8823
Carl Schreiber  

Das Ergebnis "bleibt" eine Integer-Zahl, das sollte funktionieren:

   int buytick =255;
   int selltick = 220;

   Print((double)buytick/selltick);

oder Du definierst beide Variablen gleich als double!

PS: Geändert, ich hatte das (double) vergessen - sorry!

amando
709
amando  
Carl Schreiber:

Das Ergebnis "bleibt" eine Integer-Zahl, das sollte funktionieren:

oder Du definierst beide Variablen gleich als double!

genau das ist die Frage, speziell in der 2ten Version sollte es keine integer bleiben, da ist Fehler.

Wenn ich eine double definiere und 2 integer dividiere sollte eine double rauskommen, das machst jede andere Programmiersprache auch so

Otto Pauser
1439
Otto Pauser  

Falls es int bleiben sollen, dann hilft typecast

   int a = 225;
   int b = 200;
   int x = a / b;                         // x = 1
   double c = a / b;                      // c = 1.0
   double d = (double)a / (double)b;      // d = 1.125
Carl Schreiber
Moderator
8823
Carl Schreiber  
amando:

genau das ist die Frage, speziell in der 2ten Version sollte es keine integer bleiben, da ist Fehler.

Wenn ich eine double definiere und 2 integer dividiere sollte eine double rauskommen, das machst jede andere Programmiersprache auch so

Die Dinge sind meist nicht so, wie man sich wünscht, sie seien es, sondern halt so wie sie sind.

Im MT ist meistens die erste Zahl maßgebend für das Typcasting - sorry, ich hatte das (double) vergessen.

Einloggen oder registrieren, um einen Kommentar zu schreiben