Hallo Gunnar,
Wenn ich jetzt zu einem späteren Zeitpunkt diese zum
String
konvertierteNumber
zur weiteren Bearbeitung aus dem DOM pflücken möchte, um weitere Kalkulationen anzustellenHier liegt der Fehler. Die formatierte Ausgabe des Werts ist nur für die Ausgabe, nicht für weitere Berechnungen.
ja, das ist so. Punkt.
Für weitere Berechnungen musst du dir den numerischen Wert (den unformatierten) aufheben.
Es sei denn ... Es sei denn, es geht primär um die Eingabe eines Zahlenwerts, und der formatierte String ist nur der anwender-augenfreundlich hergerichtete Defaultwert, der als Eingabe vorgeschlagen wird.
Dann sind wir aber in einer ganz anderen Liga. Dann geht es darum, Benutzereingaben als Zahlenwert zu interpretieren. Und das ist alles andere als trivial: Verwendet der Nutzer einen Punkt oder ein Komma als Dezimaltrennzeichen? Verwendet er irgendein Zeichen zur Zifferngruppierung? Wenn ja, welches? Punkt, Komma, Leerzeichen? Oder, wie teilweise in der Schweiz üblich, ein Apostroph?
Eine solche Eingabe halbwegs treffsicher zu interpretieren, ist verdammt knifflig. Man kann das mit einem heuristischen Ansatz angehen, aber 100% Trefferquote wird man auch damit nie erreichen.
Ich habe vor einiger Zeit in einer Windows-Applikation eine Funktion in C entworfen, die eine Zeitspanne als Eingabe interpretieren sollte. Dabei sollte HH:MM:SS[.mmm] (mit mmm als Bruchteile von Sekunden, optional) ebenso akzeptiert werden wie SSSS[.mmm] oder HH:MM. Problem: Enthält die Eingabe nur einen Doppelpunkt, aber keinen Punkt, der die Sekundenbruchteile abtrennt, dann ist nicht klar, ob die Eingabe als Stunden:Minuten oder Minuten:Sekunden gmeeint ist. Ich habe mich dann für letzteres entschieden, weil Testläufe über mehrere Stunden eher selten sind, und mich gefreut, als ein Kollege mich irgendwann fragte, wie ich es geschafft hätte, dass das Programm die Eingabe immer so "versteht", wie er sie auch gemeint hatte.
Immer eine Handbreit Wasser unterm Kiel
Martin
Wenn ich den See seh, brauch ich kein Meer mehr.