Char.GetNumericValue 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將指定的數值 Unicode 字元轉換為雙精度浮點數。
多載
| 名稱 | Description |
|---|---|
| GetNumericValue(Char) |
將指定的數值 Unicode 字元轉換為雙精確度浮點數。 |
| GetNumericValue(String, Int32) |
將指定字串中指定位置的數值 Unicode 字元轉換為雙精確度浮點數。 |
GetNumericValue(Char)
- 來源:
- Char.cs
- 來源:
- Char.cs
- 來源:
- Char.cs
- 來源:
- Char.cs
- 來源:
- Char.cs
將指定的數值 Unicode 字元轉換為雙精確度浮點數。
public:
static double GetNumericValue(char c);
public static double GetNumericValue(char c);
static member GetNumericValue : char -> double
Public Shared Function GetNumericValue (c As Char) As Double
參數
- c
- Char
要轉換的 Unicode 字元。
傳回
若該字元代表數字,則為 的 c 數值;否則為 -1.0。
範例
下列範例示範 GetNumericValue。
using System;
public class GetNumericValueSample {
public static void Main() {
string str = "input: 1";
Console.WriteLine(Char.GetNumericValue('8')); // Output: "8"
Console.WriteLine(Char.GetNumericValue(str, 7)); // Output: "1"
}
}
open System
let str = "input: 1"
printfn $"{Char.GetNumericValue '8'}" // Output: "8"
printfn $"{Char.GetNumericValue(str, 7)}" // Output: "1"
Module GetNumericValueSample
Sub Main()
Dim str As String
str = "input: 1"
Console.WriteLine(Char.GetNumericValue("8"c)) ' Output: "8"
Console.WriteLine(Char.GetNumericValue(str, 7)) ' Output: "1"
End Sub
End Module
備註
參數 c 必須是 Char 數值的表示。 例如,若 c 為「5」,則返回值為5。 然而,若 c 是「z」,則回傳值為 -1.0。
一個字元具有相應的數值,當且僅當它屬於以下 UnicodeCategory 類別之一: DecimalDigitNumber、、 LetterNumber或 OtherNumber。
此 GetNumericValue 方法假設對 c 應單一語言字元,並檢查該字元是否能轉換為十進位數字。 然而,Unicode 標準中有些數字是由兩個 Char 物件組成的替代對表示。 例如,愛琴海的編號系統由代碼點 U+10107 到 U+10133 組成。 以下範例使用此 ConvertFromUtf32 方法來實例表示愛琴海一號的字串。 如範例輸出所示, GetNumericValue(Char) 若該方法被傳遞該字元的高代或低代替,該方法會返回 -1。
int utf32 = 0x10107; // AEGEAN NUMBER ONE
string surrogate = Char.ConvertFromUtf32(utf32);
foreach (var ch in surrogate)
Console.WriteLine("U+{0:X4}: {1} ", Convert.ToUInt16(ch),
Char.GetNumericValue(ch));
// The example displays the following output:
// U+D800: -1
// U+DD07: -1
let utf32 = 0x10107 // AEGEAN NUMBER ONE
let surrogate = Char.ConvertFromUtf32 utf32
for ch in surrogate do
printfn $"U+{Convert.ToUInt16 ch:X4}: {Char.GetNumericValue ch} "
// The example displays the following output:
// U+D800: -1
// U+DD07: -1
Dim utf32 As Integer = &h10107 ' AEGEAN NUMBER ONE
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For Each ch In surrogate
Console.WriteLine("U+{0:X4}: {1} ", Convert.ToUInt16(ch),
Char.GetNumericValue(ch))
Next
' The example displays the following output:
' U+D800: -1
' U+DD07: -1
另請參閱
適用於
GetNumericValue(String, Int32)
- 來源:
- Char.cs
- 來源:
- Char.cs
- 來源:
- Char.cs
- 來源:
- Char.cs
- 來源:
- Char.cs
將指定字串中指定位置的數值 Unicode 字元轉換為雙精確度浮點數。
public:
static double GetNumericValue(System::String ^ s, int index);
public static double GetNumericValue(string s, int index);
static member GetNumericValue : string * int -> double
Public Shared Function GetNumericValue (s As String, index As Integer) As Double
參數
- index
- Int32
角色位置在 s。
傳回
若該字元代表數字,則該字 index 元在 的位置 s 上的數值;否則為 -1。
例外狀況
s 是 null。
index 小於零或大於中 s最後一個位置。
範例
以下程式碼範例示範 GetNumericValue。
using System;
public class GetNumericValueSample {
public static void Main() {
string str = "input: 1";
Console.WriteLine(Char.GetNumericValue('8')); // Output: "8"
Console.WriteLine(Char.GetNumericValue(str, 7)); // Output: "1"
}
}
open System
let str = "input: 1"
printfn $"{Char.GetNumericValue '8'}" // Output: "8"
printfn $"{Char.GetNumericValue(str, 7)}" // Output: "1"
Module GetNumericValueSample
Sub Main()
Dim str As String
str = "input: 1"
Console.WriteLine(Char.GetNumericValue("8"c)) ' Output: "8"
Console.WriteLine(Char.GetNumericValue(str, 7)) ' Output: "1"
End Sub
End Module
備註
s參數必須是數值的字串表示。 例如,若 中index位置s的字元為「5」,則回傳值為 5。 然而,若 中index位置s的字元為「z」,則回傳值為 -1。
字串中的字元位置從零開始索引。
一個字元具有相應的數值,當且僅當它屬於以下 UnicodeCategory 類別之一: DecimalDigitNumber、、 LetterNumber或 OtherNumber。
若 Char 位置 index 物件為有效代理對的第一個字元,方法 GetNumericValue(String, Int32) 判斷該代理對是否構成數字。 例如,愛琴海的編號系統由代碼點 U+10107 到 U+10133 組成。 以下範例使用此 ConvertFromUtf32 方法實例化代表每個愛琴數字的字串。 如範例輸出所示, GetNumericValue(String, Int32) 若方法經過愛琴海數字的高代詞,則回傳正確的數值。 然而,若通過低代替,則僅單獨考慮低代替,並返回 -1。
// Define a UTF32 value for each character in the
// Aegean numbering system.
for (int utf32 = 0x10107; utf32 <= 0x10133; utf32++) {
string surrogate = Char.ConvertFromUtf32(utf32);
for (int ctr = 0; ctr < surrogate.Length; ctr++)
Console.Write("U+{0:X4} at position {1}: {2} ",
Convert.ToUInt16(surrogate[ctr]), ctr,
Char.GetNumericValue(surrogate, ctr));
Console.WriteLine();
}
// The example displays the following output:
// U+D800 at position 0: 1 U+DD07 at position 1: -1
// U+D800 at position 0: 2 U+DD08 at position 1: -1
// U+D800 at position 0: 3 U+DD09 at position 1: -1
// U+D800 at position 0: 4 U+DD0A at position 1: -1
// U+D800 at position 0: 5 U+DD0B at position 1: -1
// U+D800 at position 0: 6 U+DD0C at position 1: -1
// U+D800 at position 0: 7 U+DD0D at position 1: -1
// U+D800 at position 0: 8 U+DD0E at position 1: -1
// U+D800 at position 0: 9 U+DD0F at position 1: -1
// U+D800 at position 0: 10 U+DD10 at position 1: -1
// U+D800 at position 0: 20 U+DD11 at position 1: -1
// U+D800 at position 0: 30 U+DD12 at position 1: -1
// U+D800 at position 0: 40 U+DD13 at position 1: -1
// U+D800 at position 0: 50 U+DD14 at position 1: -1
// U+D800 at position 0: 60 U+DD15 at position 1: -1
// U+D800 at position 0: 70 U+DD16 at position 1: -1
// U+D800 at position 0: 80 U+DD17 at position 1: -1
// U+D800 at position 0: 90 U+DD18 at position 1: -1
// U+D800 at position 0: 100 U+DD19 at position 1: -1
// U+D800 at position 0: 200 U+DD1A at position 1: -1
// U+D800 at position 0: 300 U+DD1B at position 1: -1
// U+D800 at position 0: 400 U+DD1C at position 1: -1
// U+D800 at position 0: 500 U+DD1D at position 1: -1
// U+D800 at position 0: 600 U+DD1E at position 1: -1
// U+D800 at position 0: 700 U+DD1F at position 1: -1
// U+D800 at position 0: 800 U+DD20 at position 1: -1
// U+D800 at position 0: 900 U+DD21 at position 1: -1
// U+D800 at position 0: 1000 U+DD22 at position 1: -1
// U+D800 at position 0: 2000 U+DD23 at position 1: -1
// U+D800 at position 0: 3000 U+DD24 at position 1: -1
// U+D800 at position 0: 4000 U+DD25 at position 1: -1
// U+D800 at position 0: 5000 U+DD26 at position 1: -1
// U+D800 at position 0: 6000 U+DD27 at position 1: -1
// U+D800 at position 0: 7000 U+DD28 at position 1: -1
// U+D800 at position 0: 8000 U+DD29 at position 1: -1
// U+D800 at position 0: 9000 U+DD2A at position 1: -1
// U+D800 at position 0: 10000 U+DD2B at position 1: -1
// U+D800 at position 0: 20000 U+DD2C at position 1: -1
// U+D800 at position 0: 30000 U+DD2D at position 1: -1
// U+D800 at position 0: 40000 U+DD2E at position 1: -1
// U+D800 at position 0: 50000 U+DD2F at position 1: -1
// U+D800 at position 0: 60000 U+DD30 at position 1: -1
// U+D800 at position 0: 70000 U+DD31 at position 1: -1
// U+D800 at position 0: 80000 U+DD32 at position 1: -1
// U+D800 at position 0: 90000 U+DD33 at position 1: -1
// Define a UTF32 value for each character in the
// Aegean numbering system.
for utf32 in 0x10107..0x10133 do
let surrogate = Char.ConvertFromUtf32 utf32
for i = 0 to surrogate.Length - 1 do
printf $"U+{Convert.ToUInt16 surrogate[i]:X4} at position {i}: {Char.GetNumericValue(surrogate, i)} "
printfn ""
// The example displays the following output:
// U+D800 at position 0: 1 U+DD07 at position 1: -1
// U+D800 at position 0: 2 U+DD08 at position 1: -1
// U+D800 at position 0: 3 U+DD09 at position 1: -1
// U+D800 at position 0: 4 U+DD0A at position 1: -1
// U+D800 at position 0: 5 U+DD0B at position 1: -1
// U+D800 at position 0: 6 U+DD0C at position 1: -1
// U+D800 at position 0: 7 U+DD0D at position 1: -1
// U+D800 at position 0: 8 U+DD0E at position 1: -1
// U+D800 at position 0: 9 U+DD0F at position 1: -1
// U+D800 at position 0: 10 U+DD10 at position 1: -1
// U+D800 at position 0: 20 U+DD11 at position 1: -1
// U+D800 at position 0: 30 U+DD12 at position 1: -1
// U+D800 at position 0: 40 U+DD13 at position 1: -1
// U+D800 at position 0: 50 U+DD14 at position 1: -1
// U+D800 at position 0: 60 U+DD15 at position 1: -1
// U+D800 at position 0: 70 U+DD16 at position 1: -1
// U+D800 at position 0: 80 U+DD17 at position 1: -1
// U+D800 at position 0: 90 U+DD18 at position 1: -1
// U+D800 at position 0: 100 U+DD19 at position 1: -1
// U+D800 at position 0: 200 U+DD1A at position 1: -1
// U+D800 at position 0: 300 U+DD1B at position 1: -1
// U+D800 at position 0: 400 U+DD1C at position 1: -1
// U+D800 at position 0: 500 U+DD1D at position 1: -1
// U+D800 at position 0: 600 U+DD1E at position 1: -1
// U+D800 at position 0: 700 U+DD1F at position 1: -1
// U+D800 at position 0: 800 U+DD20 at position 1: -1
// U+D800 at position 0: 900 U+DD21 at position 1: -1
// U+D800 at position 0: 1000 U+DD22 at position 1: -1
// U+D800 at position 0: 2000 U+DD23 at position 1: -1
// U+D800 at position 0: 3000 U+DD24 at position 1: -1
// U+D800 at position 0: 4000 U+DD25 at position 1: -1
// U+D800 at position 0: 5000 U+DD26 at position 1: -1
// U+D800 at position 0: 6000 U+DD27 at position 1: -1
// U+D800 at position 0: 7000 U+DD28 at position 1: -1
// U+D800 at position 0: 8000 U+DD29 at position 1: -1
// U+D800 at position 0: 9000 U+DD2A at position 1: -1
// U+D800 at position 0: 10000 U+DD2B at position 1: -1
// U+D800 at position 0: 20000 U+DD2C at position 1: -1
// U+D800 at position 0: 30000 U+DD2D at position 1: -1
// U+D800 at position 0: 40000 U+DD2E at position 1: -1
// U+D800 at position 0: 50000 U+DD2F at position 1: -1
// U+D800 at position 0: 60000 U+DD30 at position 1: -1
// U+D800 at position 0: 70000 U+DD31 at position 1: -1
// U+D800 at position 0: 80000 U+DD32 at position 1: -1
// U+D800 at position 0: 90000 U+DD33 at position 1: -1
' Define a UTF32 value for each character in the
' Aegean numbering system.
For utf32 As Integer = &h10107 To &h10133
Dim surrogate As String = Char.ConvertFromUtf32(utf32)
For ctr As Integer = 0 To surrogate.Length - 1
Console.Write("U+{0:X4} at position {1}: {2} ",
Convert.ToUInt16(surrogate(ctr)), ctr,
Char.GetNumericValue(surrogate, ctr))
Next
Console.WriteLine()
Next
' The example displays the following output:
' U+D800 at position 0: 1 U+DD07 at position 1: -1
' U+D800 at position 0: 2 U+DD08 at position 1: -1
' U+D800 at position 0: 3 U+DD09 at position 1: -1
' U+D800 at position 0: 4 U+DD0A at position 1: -1
' U+D800 at position 0: 5 U+DD0B at position 1: -1
' U+D800 at position 0: 6 U+DD0C at position 1: -1
' U+D800 at position 0: 7 U+DD0D at position 1: -1
' U+D800 at position 0: 8 U+DD0E at position 1: -1
' U+D800 at position 0: 9 U+DD0F at position 1: -1
' U+D800 at position 0: 10 U+DD10 at position 1: -1
' U+D800 at position 0: 20 U+DD11 at position 1: -1
' U+D800 at position 0: 30 U+DD12 at position 1: -1
' U+D800 at position 0: 40 U+DD13 at position 1: -1
' U+D800 at position 0: 50 U+DD14 at position 1: -1
' U+D800 at position 0: 60 U+DD15 at position 1: -1
' U+D800 at position 0: 70 U+DD16 at position 1: -1
' U+D800 at position 0: 80 U+DD17 at position 1: -1
' U+D800 at position 0: 90 U+DD18 at position 1: -1
' U+D800 at position 0: 100 U+DD19 at position 1: -1
' U+D800 at position 0: 200 U+DD1A at position 1: -1
' U+D800 at position 0: 300 U+DD1B at position 1: -1
' U+D800 at position 0: 400 U+DD1C at position 1: -1
' U+D800 at position 0: 500 U+DD1D at position 1: -1
' U+D800 at position 0: 600 U+DD1E at position 1: -1
' U+D800 at position 0: 700 U+DD1F at position 1: -1
' U+D800 at position 0: 800 U+DD20 at position 1: -1
' U+D800 at position 0: 900 U+DD21 at position 1: -1
' U+D800 at position 0: 1000 U+DD22 at position 1: -1
' U+D800 at position 0: 2000 U+DD23 at position 1: -1
' U+D800 at position 0: 3000 U+DD24 at position 1: -1
' U+D800 at position 0: 4000 U+DD25 at position 1: -1
' U+D800 at position 0: 5000 U+DD26 at position 1: -1
' U+D800 at position 0: 6000 U+DD27 at position 1: -1
' U+D800 at position 0: 7000 U+DD28 at position 1: -1
' U+D800 at position 0: 8000 U+DD29 at position 1: -1
' U+D800 at position 0: 9000 U+DD2A at position 1: -1
' U+D800 at position 0: 10000 U+DD2B at position 1: -1
' U+D800 at position 0: 20000 U+DD2C at position 1: -1
' U+D800 at position 0: 30000 U+DD2D at position 1: -1
' U+D800 at position 0: 40000 U+DD2E at position 1: -1
' U+D800 at position 0: 50000 U+DD2F at position 1: -1
' U+D800 at position 0: 60000 U+DD30 at position 1: -1
' U+D800 at position 0: 70000 U+DD31 at position 1: -1
' U+D800 at position 0: 80000 U+DD32 at position 1: -1
' U+D800 at position 0: 90000 U+DD33 at position 1: -1