[gelöscht] Hallo, ich habe folgende Frage: Der Gnu Compiler läuft bei mir über CodeBlocks. Das ist mein Quelltext (nur Probehalber): #include <iostream> using namespace std; int main() { int a=3; float b=11.172; int x=b-a; cout<<x<<endl; return a; } Als Ergebnis bekomme ich 8. Jetzt meine Frage: Sollte er die int Variable bei der Zuweisung nicht in float umwandeln? Oder wenn er das nicht sollte, wenigstens eine Warnung ausgeben? Ich bin mir nicht sicher aber ich finde das ist (vor allem für Anfänger wie mich) recht gefährlich. Oder gibt es einen tieferen Sinn dahinter? Vielleicht weiß ich ja noch etwas nicht und es kann mir jemand weiterhelfen. Würde mich echt freuen. Gruß XJ5
[gelöscht] 1) Das nennt man implizite Typumwandlung. 2) Das Verhalten des Compilers und des Programms war so zu erwarten. 3) Das Thema gehört in die Rubrlik Programmierung.
[gelöscht] 4) Es fehlen Code-Tags 5) Wenn du einen float haben möchtest, mache aus int x=b-a; float x=b-a;
jefaridas Genau genommen passiert das: Er zieht von dem float b das nach float umgewandelte a ab und wandelt das Ergebnis (weil du das so wünschst mit "int x") nach int um und speichert es in x. Also alles wie zu erwarten.