# Auf- und Abrunden bei Integer



## Degget (12. Feb 2010)

Hallo,
ich habe folgende Methode

```
public class PrüfungsKlausurAufgabe
{
  public static void main (String [] args)
  {
    int[] testArray = {-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5};
	for (int wert : testArray)
	  if (wert < 0)
	    System.out.print( " " + (-wert % 3 == 1 ? -wert : -wert / 2));
	  else 
	    if (wert == 0)
		  System.out.println();
		else
		  System.out.print( " " + ( wert % 3 == 1 ? wert : wert / 2));
  }
}
```

Der Output davon ist
2 4 1 1 1 
1 1 1 4 2

Ich verstehe nun nicht wirklich, warum 3 / 2 = 1, aber 1 / 2 = 1 und nicht 0 ergibt. Es wird einmal auf- und einmal abgerundet. Nach welchem Schema läuft das ab?
Danke für die Hilfe


----------



## SlaterB (12. Feb 2010)

wieso denkst du, dass 1 / 2 = 1 gilt? nur weil irgendwo die Ausgabe 1 erscheint?
kann doch aus ganz anderen Gründen 1 ausgegeben werden


----------



## Degget (12. Feb 2010)

Oh, ich  war gerade blind, glaub ich. Habe 10min raufgestarrt und es nicht gesehen.
1 % 3 = 1, da 1 / 3 = 0 Rest 1, richtig?


----------



## eRaaaa (12. Feb 2010)

Was ist denn 1%3 ? vllt 1 ?


```
System.out.print(" " + (wert % 3 == 1 ? wert : wert / 2));
```

also wird nicht 1/2 sondern eben 1 gedruckt...


----------

