I found this one by accident.
I was illustrating TextBox Extender component that I had developed that automatically validates any TextBox on a form. I enterd "123" the TextBox and all was right with the world. I added ".-" in an attempt to make it non-numeric, when I got an application exception. Investigation revealed the following:
IsNumeric("123.-") ' Returns True
IsNumeric("123.+") ' Returns True
IsNumeric("123.*") ' Returns False
IsNumeric("123./") ' Returns False
Double.Parse("[Any of the above Combinations]") ' Returns System.FormatException
Is this a bug in the Framework? Or is there something I'm missing?
UPDATE:
CDbl("123.-") ' Returns -123.0
CType("123.-", Double) ' Returns -123.0
This is really interesting. The default implementation of Double.Parse() is not the same as simply casting the string to a double.