Matze: C++ Frage zu ceil()

Beitrag lesen

Hallo!

Während ich dabei bin mich mit C++ zu beschäftigen,
habe ich mir zu Übungszwecken ein kleines Programm geschrieben.

#include <iostream>
#include <math.h>
using namespace std;

int e, a;   // Stückzahl, Verteilung (allocation)
float p, r; // Verpackungen, Restwert

int main ()
{
  cout << "Stückzahl:";
  cin >> e;
  cout << "Einheit(en) pro Verpackung:";
  cin >> a;
  p = ceil( e/a );
  r = e%a;
  cout << "Verpackungen: " << p << " Letzte Verpackung: " << r << " Stück" << endl;
  return 0;
}

Laut Beschreibung sollte ceil() doch in jedem Fall aufrunden.
Mein Test mit e = 20 und a = 7 ergibt mir aber 2.
Jetzt tippe ich darauf, dass aus int/int kein float p wird, obwohl p als float deklariert wurde.

Liege ich mit meiner Vermutung richtig?
Und wenn ja, wie bekomme ich den Restwert von e/a wenn der Modulus keine float-Variablen akzeptiert?
Oder wie bekomme ich einen float-Wert aus den beiden Integern?

Oder liegt mein Fehler ganz woanders?

Danke für Hinweise!

Grüße, Matze