Hallo Martin,
Und ja: Ich gehe davon aus, dass 1E3 keine zulässige Eingabe für 1000 ist. Im von zebaeh angegebenen Kontext [1] wäre auch ein Vorzeichen unzulässig, d.h. +1000 wäre ebenfalls nicht zulässig.
Ich halte all diese Einschränkungen für falsch vom Standpunkt der Usability.
Normalerweise gehe ich davon aus, nein, *fordere* ich, dass eine Eingabe in jeder halbwegs plausiblen Notation akzeptiert wird (solange diese Notation eindeutig ist), der eingegebene Wert dann intern in einem zur Anwendung passenden Format (hier: Ganzzahl) gespeichert, und bei der Ausgabe wieder entsprechend der gewünschten Darstellung formatiert wird.
Martin, Gunnar, BigPeter und Vinzenz starten beim Marathon. Der Veranstalter steht auf Startnummern mit führenden Nullen [1]. Martins Startnummer trägt die 1111, Gunnars die 0088, BigPeter hat die 0077, Vinzenz trägt die 0063. Wir nehmen weiterhin den Standardalgorithmus von parseInt():
Martin sucht sich mit seiner Startnummer, kein Problem,
Gunnar gibt die 0088 ein, auch er ist erfolgreich,
BigPeter gibt 0077 ein und findet Vinzenz statt sich selbst ...
"Ich hab's doch genauso gemacht wie Martin und Gunnar. Da kann nichts falsch sein."
Benutzerfreundlich ist es, wenn man das, was auf einem gedruckten Zettel steht, genauso verwenden kann :-) Deswegen darf man ruhig Einschränkungen vornehmen und muss gegebenenfalls seine eigene Umwandlungsroutine anstatt des Programmiersprachenstandards verwenden.
Ich halte 1E3 im vorliegenden Anwendungsfall für etwa so unwahrscheinlich wie MMM und hätte daher keine Bedenken, beide Schreibweisen nicht zu berücksichtigen.
Freundliche Grüße
Vinzenz
[1] Beim Laufen wirklich noch nie gesehen.