AspGerman Wiki

Bearbeiten

Warum liefert die Funktion IsNumeric manchmal den Wert True für nicht numerische Werte zurück?

Die Abfrage isNumeric(12) liefert True, genauso wie die Stringabfrage isNumeric("12") - so, wie man es erwartet. Tatsache ist aber, daß isNumeric() für eine nicht initialisierte Variable ein wenig unerwartet den Wert True zurückliefert.

Folgende zwei Fälle liefern also ein "unerwartetes" Ergebnis:

Dim a
Response.Write isNumeric(a)

und

b  = Empty
Response.Write isNumeric(b)

Wie umgeht man diesen Bug vernünftig? Der einfachste Weg besteht darin, jeder zu prüfenden Variable einen Leerstring hinzuzufügen, was solange gut geht als es sich nicht um ein Objekt handelt. (Aber wer prüft normalerweise ein Objekt auf isNumeric?)

Also in Zukunft statt isNumeric(Variable) besser isNumeric("" & Variable) verwenden. Die zwei Beispielskripts liefern also in folgender Form das erwartete Ergebnis ("True"):

Dim a
Response.Write isNumeric("" & a)

und

b  = Empty
Response.Write isNumeric("" & b)

ScrewTurn Wiki version 2.0.33. Some of the icons created by FamFamFam.