Converting VBScript's IsNumeric Function

Definition: Returns a Boolean value indicating whether an expression can be evaluated as a number.

IsNumeric

OK, so this one turned out to be a bit more complicated than we anticipated; that’s because neither Windows PowerShell nor the .NET Framework include a “generic” method for testing whether or not a given value is a number. After toying with the notion of doing this using regular expressions we finally decided to use Visual Basic .NET instead. In the following set of commands we assign the value 44.5 to the variable $a, then load the Microsoft.VisualBasic assembly. With the assembly loaded we can then use the Visual Basic IsNumeric function to determine whether or not 44.5 is a number::

$a = 44.5
[reflection.assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
$b = [Microsoft.VisualBasic.Information]::isnumeric($a)

As you might expect, when we run these commands and then echo back the value of $b we get the following:

True

If we change the value of $a to “44.5a” and re-run the commands we’ll get back this:

False

Return to the VBScript to Windows PowerShell home page