# große double Zahlen und modulo



## pHL (18. Sep 2009)

hallo,
wie ihr vlt bemerkt habt bin ich neu hier, und auch in java bin ich eher ein neuling.

ich habe folgendes problem:

```
import java.lang.Math;
public class testAsc {
	public static void main(String[] args) {
		double x, y;
		x = Math.pow(75, 13);
		y = x%77.0;
		System.out.println(y);

}
}
```

das programm liefert mir ein falsches ergebniss und zwar 73, es sollte aber 47 ergeben.
bis zum % (modulo) ist alles korrekt, jedoch danach eben nicht mehr. ???:L

bitte um hilfe und sry wenn ich hier im falschen thema bin

mfg
pHL


----------



## Painii (18. Sep 2009)

pHL hat gesagt.:


> bis zum % (modulo) ist alles korrekt, jedoch danach eben nicht mehr. ???:L



Lass dir mal dein x ausgeben, das sollte auch nicht in Ordnung sein


----------



## pHL (18. Sep 2009)

Painii hat gesagt.:


> Lass dir mal dein x ausgeben, das sollte auch nicht in Ordnung sein



 jah stimmt, 2.3757264018058776E24 , dachte mir das ist egal da ich immer mit meinem TR nachrechne und der mit solchen zahlen umgehen kann

jedoch weiss ich leider immer noch nicht wie ich das problem löse ???:L


----------



## Painii (18. Sep 2009)

vergiss was ich geschrieben hab, x ist richtig 
Muss dann wohl doch irgendwo beim modulo liegen

edit:
Also, ich hab jetzt mal ein Bigdecimal draus gemacht:

```
BigDecimal i = new BigDecimal(x);
	        System.out.println(i);
	        System.out.println(i.remainder(new BigDecimal("77")));
```
Ausgabe:
2375726401805877617098752
73

Mein Taschenrechner(Windows) gibt mir für 75^13 = 2375726401805877685546875
Ja, doch, man sieht einen Unterschied.


----------



## pHL (18. Sep 2009)

Painii hat gesagt.:


> vergiss was ich geschrieben hab, x ist richtig
> Muss dann wohl doch irgendwo beim modulo liegen



kk  naja dann muss ich wohl noch warten ^^
aber ty schon mal


----------



## eRaaaa (18. Sep 2009)

```
BigInteger x, y;
		x = BigInteger.valueOf(75);
		y = x.modPow(BigInteger.valueOf(13), BigInteger.valueOf(77));
		System.out.println(y);
```


----------



## pHL (18. Sep 2009)

eRaaaa hat gesagt.:


> ```
> BigInteger x, y;
> x = BigInteger.valueOf(75);
> y = x.modPow(BigInteger.valueOf(13), BigInteger.valueOf(77));
> ...



ty, muss dass jz nur noch in meinen code einbauen


----------



## SlaterB (19. Sep 2009)

double x = 1;
for (int i=0; i<13; i++) {
x = (x*75)%77;
}

so in der Art könnte man es auch mit einfachen double-Variablen ausrechnen 
bzw. gar int oder long, Nachkommastellen gibts ja nicht


----------



## pHL (21. Sep 2009)

SlaterB hat gesagt.:


> double x = 1;
> for (int i=0; i<13; i++) {
> x = (x*75)%77;
> }
> ...



thx an euch alle,

hab das jetzt so gemacht da ich mich mit den BIG's noch nicht so gut auskenne


----------

