Char.GetNumericValue Method (Char)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Updated: December 2010
Converts the specified numeric Unicode character to a double-precision floating point number.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared Function GetNumericValue ( _
c As Char _
) As Double
public static double GetNumericValue(
char c
)
Parameters
- c
Type: System.Char
A Unicode character.
Return Value
Type: System.Double
The numeric value of c if that character represents a number; otherwise, -1.0.
Remarks
The c parameter must be the Char representation of a numeric value. For example, if c is '5', the return value is 5. However, if c is 'z', the return value is -1.0.
A character has an associated numeric value if and only if it is a member of one of the following UnicodeCategory categories: DecimalDigitNumber, LetterNumber, or OtherNumber.
The GetNumericValue method assumes that c corresponds to a single linguistic character and checks whether that character can be converted to a decimal digit. However, some numbers in the Unicode standard are represented by two Char objects that form a surrogate pair. For example, the Aegean numbering system consists of code points U+10107 through U+10133. The following example instantiates a string that represents AEGEAN NUMBER ONE. As the output from the example shows, the GetNumericValue method returns false if it is passed either a high surrogate or a low surrogate of this character.
Dim surrogate As String = ChrW(&HD800) + ChrW(&HDD07) ' AEGEAN NUMBER ONE
For Each ch In surrogate
outputBlock.Text += String.Format("U+{0:X4}: {1} ", Convert.ToUInt16(ch) & vbCrLf,
Char.GetNumericValue(ch))
Next
' The example displays the following output:
' U+D800: -1
' U+DD07: -1
string surrogate = "\uD800\uDD07"; // AEGEAN NUMBER ONE
foreach (var ch in surrogate)
outputBlock.Text += String.Format("U+{0:X4}: {1} ", Convert.ToUInt16(ch),
Char.GetNumericValue(ch)) + "\n";
// The example displays the following output:
// U+D800: -1
// U+DD07: -1
Examples
The following example demonstrates GetNumericValue.
Module Example
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim str As String
str = "input: 1"
outputBlock.Text &= Char.GetNumericValue("8"c) & vbCrLf ' Output: "8"
outputBlock.Text += String.Format(Char.GetNumericValue(str, 7)) & vbCrLf ' Output: "1"
End Sub
End Module
using System;
public class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
string str = "input: 1";
outputBlock.Text += Char.GetNumericValue('8') + "\n"; // Output: "8"
outputBlock.Text += Char.GetNumericValue(str, 7) + "\n"; // Output: "1"
}
}
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
Change History
Date |
History |
Reason |
---|---|---|
December 2010 |
Added information about how the method handles surrogate pairs. |
Information enhancement. |