Division von Integer

 

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

 

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!

 
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

 

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
 
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.

Grund der Beschwerde: