บทนำ
เมธอด Char.GetNumericValue() ใน C# ใช้แปลงตัวอักษร Unicode ที่เป็นตัวเลข (numeric character) ให้เป็นค่าจุดลอยตัวความแม่นยำสองเท่า (double) หากตัวอักษรไม่ใช่ตัวเลข จะคืนค่า -1
ไวยากรณ์ (Syntax)
public static double GetNumericValue (char ch);
โดยที่ ch คือตัวอักษร Unicode ที่ต้องการแปลง
ตัวอย่างที่ 1: ตัวอักษรที่ไม่ใช่ตัวเลข
using System;
public class Demo
{
public static void Main()
{
char val = 'm';
bool res;
Console.WriteLine("Hashcode for val = " + val.GetHashCode());
res = val.Equals('m');
Console.WriteLine("Return Value = " + res);
Console.WriteLine("Numeric Value = " + Char.GetNumericValue(val));
}
}
ผลลัพธ์
Hashcode for val = 7143533 Return Value = True Numeric Value = -1
ตัวอย่างที่ 2: ตัวอักษรที่เป็นตัวเลข
using System;
public class Demo
{
public static void Main()
{
char val = '5';
bool res;
Console.WriteLine("Hashcode for val = " + val.GetHashCode());
res = val.Equals('m');
Console.WriteLine("Return Value = " + res);
Console.WriteLine("Numeric Value = " + Char.GetNumericValue(val));
}
}
ผลลัพธ์
Hashcode for val = 3473461 Return Value = False Numeric Value = 5
สรุป
เมธอด Char.GetNumericValue() รองรับตัวเลข Unicode ทุกรูปแบบ รวมถึงตัวเลขอรบิก-อินเดีย (٠١٢٣٤٥٦٧٨๑) ตัวเลขโรมัน (ⅰⅱⅲ) และตัวเลขในภาษาอื่นๆ คืนค่า -1 สำหรับตัวอักษรที่ไม่มีค่าตัวเลข ใช้ในการแปลงข้อความที่มีตัวเลขผสมให้เป็นค่าตัวเลขจริง