Zum Inhalt springen

int zu float ... hmm


alligator

Empfohlene Beiträge

Hi zusammen,

erstmal hier der Code.


int a=10,b=3;

float c=0;


c = a*1./b;

cout << c;

Es geht um die Problematik dass wenn ich 2 Integer durcheinander teile und das Ergebniss dann in ein Float speichere. Naja ich frag mich grad warum man das in C++ so blöd machen muss? Wieso geht nicht einfach:

c = a/b;

Deshalb deklariere ich ja c als float das der das Ergebniss ( die Zuweisung) als Kommastelle versteht.

Kann mir das mal jemand erklären, denn bis jetzt hab ichs halt so hingenommen, dass des C++ einfach net blickt ...

cu

alligator

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hoi,

zu 1. Aehmmm wo ist denn da nun ein Problem?

zu 2. Wieso findest das komisch?

ein c = (float a) / b; waere ja sowas wie eine versuchte neu Deklaration von a als float, was man aber so nicht darf.

und ein c = (float)a/b; ...nuja dabei ist das (float) ja nur ein Casting, waere also so aehnlich, also wenn du gleich ein float a = 10; festgelegt haettest....da das dann keine reine Integer Divison mehr ist wird das Ergebnis auch nicht mehr auf ein Int gekuerzt.

CU

Goos

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Grund, warum dies

int a=10,b=3;

float c;


c=a/b;

nicht funktioniert ist, daß der Compiler erst den Ausdruck a/b ausrechnet (Ergebnis ist vom Typ int) und dann den Wert c zuweist (int wird in float umgewandelt).

Sorgt man aber dafür, daß eine der beiden Variablen, also a oder b, vorher in float umgewandelt wird, dann ist auch das Ergebnis der Division vom Typ float, denn C wandelt bei verschiedenen Typen bei einer Operation immer erst eine der beiden Variablen so um, daß beide den gleichen Typ haben, führt dann die Operation aus, deren Ergebnis dann vom gleichen Typ ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...