Problem beim Typ cast
-
Da kann ich Dir nur Recht geben. Verstehst Du nun warum ich als Anfänger mich dann auch noch mit diesem Bsp. so schwer tu?!
Aber das mit dem cast erzwingen versuch ich doch die ganze Zeit.
int darf es im übrigen auch nicht sein, da ich dann wieder einen Werteberichsüberschreitung habe.
-
Frandy schrieb:
Da kann ich Dir nur Recht geben. Verstehst Du nun warum ich als Anfänger mich dann auch noch mit diesem Bsp. so schwer tu?!
Ja, schon. Zumindest zum Teil.

Aber ich versuche mal, dir ein besseres Beispiel zu liefern:
int a = 24; float b = 5.72f; // Wir möchten nun 3.25 zu dem abgerundeten Produkt von a und b addieren. float c = 3.25f + static_cast<int>(a * b);Hier brauchst du den Cast, da ein Teilausdruck zuerst ausgewertet und in einen ganzzahligen Typen umgewandelt werden soll.
Frandy schrieb:
Aber das mit dem cast erzwingen versuch ich doch die ganze Zeit.
Und ergebnis wird auch automatisch durch int(14) nicht zu int!Auch nachdem es dir mindestens drei Mal gesagt wurde, ändert sich nichts an der Tatsache, dass das nichts mit dem Cast zu tun hat.

-
das hab ich verstanden, Danke für die Erklärung und die Geduld.
Aber wie würdest Du den meine Aufgabe lösen?
-
Frandy schrieb:
Aber wie würdest Du den meine Aufgabe lösen?
Sorry, wie lernresistent bist du eigentlich? So langsam frage ich mich echt.

Bereits auf der ersten Seite habe ich geschrieben, wo das Problem liegt! Also lies gefälligst meine Posts. Ich habe mir schliesslich auch Mühe gegeben, um dir zu helfen. Ein wenig Eigeninitiative zu zeigen und auf Antworten einzugehen ist wohl das Allermindeste.
-
Ich bin Dir auch sehr dankbar dafür!!!
Ich weiß auch nun das das Bsp. sehr schlecht ist. Aber wenn ich bei der Deklaration der Variablen den Typ short beibehalten möchte, wie bekomme ich dann den wert nach der Berechnung in die Variable ergebnis? Ohne Wertebereichsüberschreitung?
Genau das ist doch mein Problem.
Das konnte ich bisher immer noch nicht erkennen. Und ich lese alle Deiner Posts.
Vieleicht hab ich mich Dir gegenüber auch nur falsch ausgedrückt. Ich denke schon das ich auf Dich eingehe und auch Initiative zeige.Also letzter Versuch, OK?
Danke!
-
Auf der ersten Seite in meinem zweiten Post steht:
Nexus schrieb:
Nein, die Variable
ergebnisist zu klein, um das Resultat zu halten. Deklarier sie alslong.Reicht das? Oder soll ich dir nochmals sagen, dass
shortzu klein für den gewünschten Wertebereich ist?
-
Frandy schrieb:
Ich weiß auch nun das das Bsp. sehr schlecht ist. Aber wenn ich bei der Deklaration der Variablen den Typ short beibehalten möchte, wie bekomme ich dann den wert nach der Berechnung in die Variable ergebnis? Ohne Wertebereichsüberschreitung?
Gar nicht?
Einshorthat auf den meisten Kompilern und Betriebsystemen 2 Bytes und kann somit unmöglich grössere Werte aufnehmen.Grüssli
-
Das ist doch auch klar, hab ich längst verstanden!!!!
War auch von Anfang an klar!.
Nur was ist mit der Lösung die zu der Aufgabenstellung vorgestellt wurde:
ergebnis=static_cast<long>(wert)*14;ergebnis ist ja durch die Deklaration vom Typ short.
Demnach ist das vorgeschlagene Ergebnis doch falsch!!!
-
Frandy schrieb:
Das ist doch auch klar, hab ich längst verstanden!!!!
War auch von Anfang an klar!.
Natürlich, ich habe es schliesslich fünf Mal erklärt, um dich zu ärgern.
Frandy schrieb:
Demnach ist das vorgeschlagene Ergebnis doch falsch!!!
Ja, wenn
ergebnisin der Lösung alsshortdeklariert ist, ist das ein Fehler.
-
Das mit dem Ärgern hat auch geklappt, besonders mit dem lernresistent!!!
Das war des Rätsels Lösung. Ich wollte die falsche Lösung die als die richtige ausgegeben wurde verstehen und konnte es nicht.
Noch einmal vielen Dank für Eure Unterstützung, besonders Deine Nexus!!
Schönen Abend noch

-
Frandy schrieb:
Das mit dem Ärgern hat auch geklappt, besonders mit dem lernresistent!!!
Hast du schon mal was von Ironie gehört? Im Übrigen stellt sich wohl die Frage, wen dieser Thread mehr Nerven gekostet hat. Aber nun gut...
-
Ehm, kann mir jemand erklären, was nun das endgültige Problem war? Ich versteh irgendwie nur Bahnhof

Was wollte Frandy nun wissen?Grüssli
-
Dravere schrieb:
Ehm, kann mir jemand erklären, was nun das endgültige Problem war? Ich versteh irgendwie nur Bahnhof

Was wollte Frandy nun wissen?Frag mich nicht...
Aber ich glaube, er wollte gar nichts wissen, da ihm ja alles von Anfang an klar war. :p
-
Hallo Dravere,
schau mal auf das Ende von Seite 2, da ist die ganze Aufgabe beschrieben.
Ich wollte einfach die vorgegeben Lösung nachvollziehen können. was aber nicht möglich ist.
Habe mich in einer falschen Lösung verrant!
-
@Frandy,
Achso, der Lösungsvorschlag zur Aufgabe ist dies:ergebnis=static_cast<long>(wert)*14;Dabei ist diese Lösung falsch und das war dein Problem?
Was sind das denn für Aufgaben? Oder besser, wer hat die Lösungen dazu erstellt? Die Aufgaben würde ich ziemlich schnell wegwerfen, wenn die solch fatale Fehler machen

Grüssli