Der Martin: Zahlenformat erkennen

Beitrag lesen

Das sehe ich auch so. Aber nach welchem Algorithmus trifft man am besten die Entscheidung, ob es sich nun um einen Tausender-Seperator oder um ein Dezimaltrennzeichen handelt, wenn nur ein Punkt oder ein Komma drin ist im String.

Die Marotte mit dem Tausender-Trennzeichen würde ich gar nicht berücksichtigen. Bei der _Ausgabe_ von Zahlen wird zwar zur besseren Lesbarkeit oft eins gesetzt. Aber bei der _Eingabe_ benutzt es IMO kaum jemand.

123,896       sind das jetzt 123 + 898/1000 oder sind es
  Einhundertdreiundzwanzigtausendschthundertsechunsneunzig?

Das sind für mich zwei getrennte Zahlen, nämlich die 123, und  davon abgesetzt die 896.

1.234.900,001 hier ist sie Sache klar erkennbar
  1,234,900.002 hier auch

Ja, aber das sind Formate, die ich bei der freien Eingabe von Zahlen nicht erwarten würde (siehe oben).

1,234.900,003 das ist verboten und klar als Fehler erkennbar
  1.234,900.004 das ist auch verboten und auch klar als Fehler erkennbar

ACK.

Wie macht mans richtig?

Am besten die Einstellung aus dem Benutzerprofil verwenden. Auf Web-Projekte bezogen heißt das, dass man nicht anfangen sollte, selbst Umwandlungsroutinen (etwa in JS) zu schreiben. Wenn ich den Inhalt (value) eines Formularfeldes direkt in einem numerischen Ausdruck verarbeite, dann ist der JS-Interpreter dafür verantwortlich, das Zahlenformat richtig zu erkennen. Und der _hat_ die Möglichkeit, Einstellungen aus dem User-Profil abzufragen.
Bei serverseitigen Lösungen (PHP, Perl, CGI allgemein) wird's problematischer. Da muss man wahrscheinlich echt raten. Aber auch hier ergibt es sich oft schon aus dem Kontext. In deinem ersten Beispiel würde ich die Interpretation davon abhängig machen, ob ich an dieser Stelle _einen_ numerischen Wert erwarte oder zwei.

Harzliche Grüße aus http://www.annerschbarrich.de

Schwäbische Grüße aus http://www.backnang.de  ;)

Martin