Vollen String in Double umwandeln
-
Hallo
Ich habe folgendes Problem: Ich weiß zwar, wie ich einen String in eine Variable des Datentyps Double umwandle, trotzdem wird nur der erste Teil "akzeptiert". Ich meine, der String ist: "3+4" und wenn ich ihn in dann umwandeln will, wird nur "3" umgewandelt.
Wie kann ich es machen, dass der volle String, also das ganze "3+4", umgewandelt wird (müsste dann 7 rauskommen) und nicht nur ein Teil davon?
So meine ich es (ist bloß eine Art Veranschaulichung, was ich meine):
string zahl = "3+4";
double zahl1 = 3+4Damit meine ich, dass dieser eingetragene Wert, der dem String "zahl" eingetragen wird, auch der double Variable "zahl1" eingetragen wird. Also Wertvonstring = Wertvondouble
Solange die Lösung irgendwie einfach ist: Ich habe erst vor einiger Zeit mit dem Programmieren angefangen.
Ich freue mich auf Antworten!
-
Wie schwer das ist, hängt von den Bedingungen ab.
Im einfachsten Fall wie im Beispiel, kannst du einfach den String in drei einzelne (zahl1, zahl2 und '+') aufteilen und sie einzeln auswerten.
Das kannst du einfach auf mehr Zahlen erweitern, aber wenn du irgendwann kompliziertere Formeln haben willst, musst du auch Punkt- vor Strichrechnung, Klammern, mehrere Vorzeichen (z.B: --7) evtl sogar Potenzen und Funktionen auslesen.
Der erste Fall ist wohl sehr gut für einen Anfänger geeignet, weil man etwas über Stringverarbeitung lernt und man es einfach auf mehr als zwei Teile erweitern kann. Die komplizierteren brauchen aber deutlich mehr, siehe hier.
-
Gut danke für deine Antwort.
Hab etwas nachgedacht und mir ist eine neue Frage eingefallen:
Wenn ich jetzt einen "String" eingebe (damit meine ich den String in C, mit fgets, etc.) und ich dann ganz einfach diesen String/Char-Array in einen Double-Array umwandle, würde es irgendwie gehen, dass man diesen Double-Array in ein normales Double umwandeln könnte?
-
..
-
Es gibt keine eingebaute Routine, die Mathematische Ausdrücke in Stringrepräsentation auswerten kann. Das ist eine der Übungen, die aber so ziemlich jeder Programmierer irgendwann einmal angegangen ist - am besten aber nicht gleich am ersten Tag, auch wenn ich die Motivation durchaus nachvollziehen kann. Irgendwie finde ich es aber komisch, dass man davon ausgeht, dass das irgendwie automatisch ginge, die Idee hatte ich nie.
Wenn Du's aber wirklich wirklich wirklich ernst meinst, dann überlege Dir, wie Du das im Kopf machst und versuche das auf einen festen Algorithmus runterbrechen. Sodann lernst Du weiter die Sprache und merkst Dir alles, was Deiner Meinung nach bei der Umsetzung dieses Algorithmus hilfreich sein könnte, um es dann selber zu machen, sobald Du Dich bereit fühlst.
Wenn Du Dich jetzt aber an den vielen Problemen, die auf dem Weg liegen, entlanghangeln wirst und jedes Mal wieder eine Frage dazu stellst hier, dann wirst Du Dir keine Freunde machen und vor lauter Zugeflametwerden aufgeben, bevor Du am Ziel bist.
-
Gute Antwort, danke!
