# Stellen abschneiden



## blacks9n (19. Jan 2009)

hallo,

es geht darum dass ich zb eine zahl wie 20010000 auf 2001 kürzen will, dh einfach abschneiden. 

konkret möchte ich eine zahl mit hoher bit zahl auf 32bit kürzen. Dabei verwende ich BigInteger.

leider habe ich keine funktion dafür gefunden.

freue mich über hilfe.

mfg blacks9n


----------



## hdi (19. Jan 2009)

```
BigInteger big = new BigInteger("23829234823748932758935");


System.out.println("Vor dem Abschneiden:\t"+big);

while (big.compareTo(limit) == 1){ // big > limit
	String s = big.toString(); // Zahl als String
	big = new BigInteger(s.substring(0,s.length()-1)); // rechteste Zahl wegwerfen
}

System.out.println("Nach dem Abschneiden:\t"+big);
```

...kann man natürlich wesentlich schöner machen. Vllt gibt's sogar was schlaueres als diese Schleife
mit compareTo, war jetz nur das was mir auf die Schnelle eingefallen ist.

*edit*
Das hier wäre wohl zB ein wenig besser:

```
BigInteger big = new BigInteger("23829234823748932758935"); 
BigInteger limit = new BigInteger(Integer.MAX_VALUE+""); // maximal darstellbare Zahl mit 32 Bit

if (b.compareTo(limit) == 1){
         b = new BigInteger(big.toString().substring(0,limit.toString().length)); 
}
```


----------



## blacks9n (19. Jan 2009)

danke hast mir geholfen


----------

