Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

Hi,

1. naja das erklärt dennoch nicht das Problem

2. Ich hatte es auch so

c = (float a) / b;

versucht, aber dass es so

c = (float) a / b;

tut find ich auch sehr sehr seltsam ...

cu

alligator

Geschrieben

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

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...