Hallo!
Kann das hier irgendjemand reproduzieren?
Die Ausgabe ist bei mir
49000
49000
-947008148
-947008148
-947008148
aber die letzten 3 Zeilen sollten ja irgendwie positiv sein. Oder hab ich hier irgendeine seltsame implizite Konversionsregel übersehen?
Der Code, den ich *eigentlich* benutzen möchte, lautet
und dabei hab ich das gleiche Problem. (Genau genommen bin ich von da aus zu diesem seltsamen "Bug" [?] gekommen... normalerweise wird es ja "besser", wenn man statt Funktionsaufrufen Konstanten einsetzt. Hier nicht.)
Ich hab die JavaVM in der Version 1.6.0_11, OS ist Windows XP SP3.
Grüße,
Red*Star
Kann das hier irgendjemand reproduzieren?
Java:
int paircount2 = 49000;
int paircount3 = 49000;
long paircount4 = paircount2 * (paircount3 - 1) / 2;
int paircount5 = paircount2 * (paircount3 - 1) / 2;
int paircount6 = 49000 * (49000 - 1) / 2;
System.out.println(paircount2);
System.out.println(paircount3);
System.out.println(paircount4);
System.out.println(paircount5);
System.out.println(paircount6);
Die Ausgabe ist bei mir
49000
49000
-947008148
-947008148
-947008148
aber die letzten 3 Zeilen sollten ja irgendwie positiv sein. Oder hab ich hier irgendeine seltsame implizite Konversionsregel übersehen?
Der Code, den ich *eigentlich* benutzen möchte, lautet
Java:
long paircount = database.getDataCount() * (database.getDataCount() - 1) / 2;
und dabei hab ich das gleiche Problem. (Genau genommen bin ich von da aus zu diesem seltsamen "Bug" [?] gekommen... normalerweise wird es ja "besser", wenn man statt Funktionsaufrufen Konstanten einsetzt. Hier nicht.)
Ich hab die JavaVM in der Version 1.6.0_11, OS ist Windows XP SP3.
Grüße,
Red*Star