Bagikan melalui


BigInteger.Parse Metode

Definisi

Mengonversi representasi string dari angka menjadi BigInteger setara.

Overload

Parse(String)

Mengonversi representasi string dari angka menjadi BigInteger setara.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Mengurai rentang karakter ke dalam nilai.

Parse(String, NumberStyles)

Mengonversi representasi string dari angka dalam gaya tertentu menjadi BigInteger setara.

Parse(String, IFormatProvider)

Mengonversi representasi string dari angka dalam format khusus budaya tertentu menjadi BigInteger setara.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Mengonversi representasi angka, yang terkandung dalam rentang karakter baca-saja yang ditentukan, dalam gaya yang ditentukan ke BigInteger yang setara.

Parse(String, NumberStyles, IFormatProvider)

Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya menjadi BigInteger setara.

Parse(String)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mengonversi representasi string dari angka menjadi BigInteger setara.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value);
public static System.Numerics.BigInteger Parse (string value);
static member Parse : string -> System.Numerics.BigInteger
Public Shared Function Parse (value As String) As BigInteger

Parameter

value
String

String yang berisi angka yang akan dikonversi.

Mengembalikan

Nilai yang setara dengan angka yang ditentukan dalam value parameter .

Pengecualian

valueadalah null.

value tidak dalam format yang benar.

Contoh

Contoh berikut menggunakan Parse(String) metode untuk membuat instans dua BigInteger objek. Ini mengalikan setiap objek dengan nomor lain dan kemudian memanggil Compare metode untuk menentukan hubungan antara kedua nilai.

string stringToParse = String.Empty;
try
{
   // Parse two strings.
   string string1, string2;
   string1 = "12347534159895123";
   string2 = "987654321357159852";
   stringToParse = string1;
   BigInteger number1 = BigInteger.Parse(stringToParse);
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number1);
   stringToParse = string2;
   BigInteger number2 = BigInteger.Parse(stringToParse);
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number2);
   // Perform arithmetic operations on the two numbers.
   number1 *= 3;
   number2 *= 2;
   // Compare the numbers.
   int result = BigInteger.Compare(number1, number2);
   switch (result)
   {
      case -1:
         Console.WriteLine("{0} is greater than {1}.", number2, number1);
         break;
      case 0:
         Console.WriteLine("{0} is equal to {1}.", number1, number2);
         break;
      case 1:
         Console.WriteLine("{0} is greater than {1}.", number1, number2);
         break;
   }
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse {0}.", stringToParse);
}
// The example displays the following output:
//    Converted '12347534159895123' to 12,347,534,159,895,123.
//    Converted '987654321357159852' to 987,654,321,357,159,852.
//    1975308642714319704 is greater than 37042602479685369.
    let mutable stringToParse = ""

    try
        // Parse two strings.
        let string1 = "12347534159895123"
        let string2 = "987654321357159852"
        stringToParse <- string1
        let number1 = BigInteger.Parse stringToParse
        printfn $"Converted '{stringToParse}' to {number1:N0}."
        stringToParse <- string2
        let number2 = BigInteger.Parse stringToParse
        printfn $"Converted '{stringToParse}' to {number2:N0}."
        // Perform arithmetic operations on the two numbers.
        let number1 = number1 * bigint 3
        let number2 = number2 * bigint 2
        // Compare the numbers.
        let result = BigInteger.Compare(number1, number2)

        match result with
        | -1 -> printfn $"{number2:N0} is greater than {number1:N0}."
        | 0 -> printfn $"{number1:N0} is equal to {number2:N0}."
        | 1
        | _ -> printfn $"{number1:N0} is greater than {number2:N0}."
    with :? FormatException ->
        printfn $"Unable to parse {stringToParse}."

// The example displays the following output:
//    Converted '12347534159895123' to 12,347,534,159,895,123.
//    Converted '987654321357159852' to 987,654,321,357,159,852.
//    1975308642714319704 is greater than 37042602479685369.
Dim stringToParse As String = String.Empty
Try
   ' Parse two strings.
   Dim string1, string2 As String
   string1 = "12347534159895123"
   string2 = "987654321357159852"
   stringToParse = string1
   Dim number1 As BigInteger = BigInteger.Parse(stringToParse)
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number1)
   stringToParse = string2
   Dim number2 As BigInteger = BigInteger.Parse(stringToParse)
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number2)
   ' Perform arithmetic operations on the two numbers.
   number1 *= 3
   number2 *= 2
   ' Compare the numbers.
   Select Case BigInteger.Compare(number1, number2)
      Case -1
         Console.WriteLine("{0} is greater than {1}.", number2, number1)
      Case 0
         Console.WriteLine("{0} is equal to {1}.", number1, number2)
      Case 1
         Console.WriteLine("{0} is greater than {1}.", number1, number2)
   End Select      
Catch e As FormatException
   Console.WriteLine("Unable to parse {0}.", stringToParse)
End Try
' The example displays the following output:
'    Converted '12347534159895123' to 12,347,534,159,895,123.
'    Converted '987654321357159852' to 987,654,321,357,159,852.
'    1975308642714319704 is greater than 37042602479685369.

Keterangan

Parameter value harus menjadi representasi string dari angka dalam formulir berikut.

[ws] [tanda]digits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional.
sign Tanda opsional. Karakter tanda yang valid ditentukan oleh NumberFormatInfo.NegativeSign properti dan NumberFormatInfo.PositiveSign dari budaya saat ini.
Digit Urutan digit mulai dari 0 hingga 9. Setiap nol di depan diabaikan.

Catatan

String yang ditentukan oleh value parameter ditafsirkan dengan menggunakan NumberStyles.Integer gaya . Ini tidak boleh berisi pemisah grup atau pemisah desimal, dan tidak dapat memiliki bagian desimal.

Parameter value diurai dengan menggunakan informasi pemformatan dalam objek yang diinisialisasi System.Globalization.NumberFormatInfo untuk budaya sistem saat ini. Untuk informasi selengkapnya, lihat NumberFormatInfo.CurrentInfo. Untuk mengurai string dengan menggunakan informasi pemformatan budaya tertentu, gunakan metode .Parse(String, IFormatProvider)

Penting

Jika Anda menggunakan Parse metode untuk melakukan round-trip representasi string dari BigInteger nilai yang dihasilkan oleh ToString metode , Anda harus menggunakan BigInteger.ToString(String) metode dengan penentu format "R" untuk menghasilkan representasi string nilai BigInteger . Jika tidak, representasi string dari BigInteger mempertahankan hanya 50 digit paling signifikan dari nilai asli, dan data mungkin hilang ketika Anda menggunakan Parse metode untuk memulihkan BigInteger nilai.

Lihat juga

Berlaku untuk

Parse(ReadOnlySpan<Char>, IFormatProvider)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mengurai rentang karakter ke dalam nilai.

public:
 static System::Numerics::BigInteger Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As BigInteger

Parameter

s
ReadOnlySpan<Char>

Rentang karakter untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

Mengembalikan

Hasil penguraian s.

Penerapan

Berlaku untuk

Parse(String, NumberStyles)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mengonversi representasi string dari angka dalam gaya tertentu menjadi BigInteger setara.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style);
public static System.Numerics.BigInteger Parse (string value, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, style As NumberStyles) As BigInteger

Parameter

value
String

String yang berisi angka yang akan dikonversi.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menentukan format yang diizinkan dari value.

Mengembalikan

Nilai yang setara dengan angka yang ditentukan dalam value parameter .

Pengecualian

style bukan nilai NumberStyles .

-atau-

style AllowHexSpecifier menyertakan bendera atau HexNumber bersama dengan nilai lain.

valueadalah null.

value tidak mematuhi pola input yang ditentukan oleh NumberStyles.

Contoh

Contoh berikut mengilustrasikan panggilan ke Parse(String, NumberStyles) metode dengan beberapa nilai yang style mungkin untuk parameter . Ini menggambarkan cara menginterpretasikan string sebagai nilai heksadesimal, dan cara melarang spasi dan menandatangani simbol.

BigInteger number;
// Method should succeed (white space and sign allowed)
number = BigInteger.Parse("   -68054   ", NumberStyles.Integer);
Console.WriteLine(number);
// Method should succeed (string interpreted as hexadecimal)
number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier);
Console.WriteLine(number);
// Method call should fail: sign not allowed
try
{
   number = BigInteger.Parse("   -68054  ", NumberStyles.AllowLeadingWhite
                                            | NumberStyles.AllowTrailingWhite);
   Console.WriteLine(number);
}
catch (FormatException e)
{
   Console.WriteLine(e.Message);
}
// Method call should fail: white space not allowed
try
{
   number = BigInteger.Parse("   68054  ", NumberStyles.AllowLeadingSign);
   Console.WriteLine(number);
}
catch (FormatException e)
{
   Console.WriteLine(e.Message);
}
//
// The method produces the following output:
//
//     -68054
//     426068
//     Input string was not in a correct format.
//     Input string was not in a correct format.
    let number = BigInteger.Parse("   -68054   ", NumberStyles.Integer)
    printfn $"{number}"
    let number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier)
    printfn $"{number}"

    try
        let number =
            BigInteger.Parse("   -68054  ", NumberStyles.AllowLeadingWhite ||| NumberStyles.AllowTrailingWhite)

        printfn $"{number}"
    with :? FormatException as e ->
        printfn $"{e.Message}"

    try
        let number = BigInteger.Parse("   68054  ", NumberStyles.AllowLeadingSign)
        printfn $"{number}"
    with :? FormatException as e ->
        printfn $"{e.Message}"
// The method produces the following output:
//     -68054
//     426068
//     Input string was not in a correct format.
//     Input string was not in a correct format.
Dim number As BigInteger 
' Method should succeed (white space and sign allowed)
number = BigInteger.Parse("   -68054   ", NumberStyles.Integer)
Console.WriteLine(number)
' Method should succeed (string interpreted as hexadecimal)
number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier)
Console.WriteLine(number)
' Method call should fail: sign not allowed
Try
   number = BigInteger.Parse("   -68054  ", NumberStyles.AllowLeadingWhite _
                                            Or NumberStyles.AllowTrailingWhite)
   Console.WriteLine(number)
Catch e As FormatException
   Console.WriteLine(e.Message)
End Try                                                     
' Method call should fail: white space not allowed
Try
   number = BigInteger.Parse("   68054  ", NumberStyles.AllowLeadingSign)
   Console.WriteLine(number)
Catch e As FormatException
   Console.WriteLine(e.Message)
End Try    
'
' The method produces the following output:
'
'     -68054
'     426068
'     Input string was not in a correct format.
'     Input string was not in a correct format.

Keterangan

Parameter style menentukan elemen gaya (seperti spasi putih, simbol tanda positif atau negatif, simbol pemisah grup, atau simbol titik desimal) yang diizinkan dalam value parameter agar operasi penguraian berhasil. styles harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Parameter style membuat metode ini kelebihan beban berguna ketika value berisi representasi string dari nilai heksadesimal, ketika sistem angka (desimal atau heksadesimal) yang diwakili oleh value hanya diketahui pada durasi, atau ketika Anda ingin melarang spasi putih atau simbol tanda di value.

Bergantung pada nilai style, value parameter dapat mencakup elemen berikut:

[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Jika style menyertakan NumberStyles.AllowHexSpecifier, value parameter mungkin berisi elemen berikut:

[ws] hexdigits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingWhite bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh NumberFormatInfo.CurrencyNegativePattern properti dan NumberFormatInfo.CurrencyPositivePattern dari budaya saat ini. Simbol mata uang budaya saat ini dapat muncul jika valuestyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan value untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera .
Digit

fractional_digits

exponential_digits
Urutan digit dari 0 hingga 9. Untuk fractional_digits, hanya digit 0 yang valid.
, Simbol pemisah grup khusus budaya. Pemisah grup budaya saat ini dapat muncul jika valuestyle menyertakan NumberStyles.AllowThousands bendera .
. Simbol titik desimal khusus budaya. Simbol titik desimal budaya saat ini dapat muncul jika valuestyle menyertakan NumberStyles.AllowDecimalPoint bendera . Hanya digit 0 yang dapat muncul sebagai digit pecahan agar operasi penguraian berhasil; jika fractional_digits menyertakan digit lain, akan FormatException dilemparkan.
E Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Setiap karakter NUL yang mengakhiri (U+0000) di s diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

String dengan digit saja (yang sesuai dengan NumberStyles.None gaya) selalu berhasil diurai. Sebagian besar elemen kontrol anggota yang tersisa NumberStyles yang mungkin ada, tetapi tidak diharuskan ada, dalam string input. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di value.

NumberStyles nilai Elemen yang diizinkan selain value digit
None Elemen digit saja.
AllowDecimalPoint Elemen titik desimal (.) dan digit pecahan .
AllowExponent Karakter "e" atau "E", yang menunjukkan notasi eksponensial, bersama dengan exponential_digits.
AllowLeadingWhite Elemen ws di awal value.
AllowTrailingWhite Elemen ws di akhir value.
AllowLeadingSign Elemen tanda di awal value.
AllowTrailingSign Elemen tanda di akhir value.
AllowParentheses Elemen tanda tangan dalam bentuk tanda kurung yang menyertakan nilai numerik.
AllowThousands Elemen pemisah grup (,).
AllowCurrencySymbol Elemen mata uang ($).
Currency Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial.
Float Elemen ws di awal atau akhir , valuetanda di awal value, dan simbol titik desimal (.). Parameter value juga dapat menggunakan notasi eksponensial.
Number Elemen ws, sign, pemisah grup (,), dan titik desimal (.).
Any Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal.

Penting

Jika Anda menggunakan Parse metode untuk melakukan round-trip representasi string dari BigInteger nilai yang dihasilkan oleh ToString metode , Anda harus menggunakan BigInteger.ToString(String) metode dengan penentu format "R" untuk menghasilkan representasi string dari BigInteger nilai. Jika tidak, representasi string dari BigInteger mempertahankan hanya 50 digit paling signifikan dari nilai asli, dan data mungkin hilang ketika Anda menggunakan Parse metode untuk memulihkan BigInteger nilai.

Tidak seperti nilai lain NumberStyles , yang memungkinkan, tetapi tidak memerlukan, keberadaan elemen gaya tertentu dalam value, NumberStyles.AllowHexSpecifier nilai gaya berarti bahwa karakter numerik individu di selalu ditafsirkan value sebagai karakter heksadesimal. Karakter heksadesimal yang valid adalah 0-9, A-F, dan a-f. Satu-satunya bendera lain yang dapat dikombinasikan dengan style parameter adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles mencakup gaya angka komposit, HexNumber, yang mencakup kedua bendera spasi putih.)

Catatan

Jika value merupakan representasi string dari angka heksadesimal, itu tidak dapat didahului oleh dekorasi apa pun (seperti 0x atau &h) yang membedakannya sebagai angka heksadesimal. Ini menyebabkan konversi gagal.

Jika value adalah string heksadesimal, Parse(String, NumberStyles) metode menafsirkan value sebagai angka negatif yang disimpan dengan menggunakan representasi pelengkap dua jika dua digit heksadesimal pertamanya lebih besar dari atau sama dengan 0x80. Dengan kata lain, metode menginterpretasikan bit urutan tertinggi dari byte pertama sebagai value bit tanda. Untuk memastikan bahwa string heksadesimal ditafsirkan dengan benar sebagai angka positif, digit pertama di value harus memiliki nilai nol. Misalnya, metode menafsirkan 0x80 sebagai nilai negatif, tetapi menafsirkan baik 0x080 atau 0x0080 sebagai nilai positif. Contoh berikut mengilustrasikan perbedaan antara string heksadesimal yang mewakili nilai negatif dan positif.

using System;
using System.Globalization;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      string[] hexStrings = { "80", "E293", "F9A2FF", "FFFFFFFF",
                              "080", "0E293", "0F9A2FF", "0FFFFFFFF",
                              "0080", "00E293", "00F9A2FF", "00FFFFFFFF" };
      foreach (string hexString in hexStrings)
      {
         BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
      }
   }
}
// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
open System.Globalization
open System.Numerics

let hexStrings =
    [| "80"
       "E293"
       "F9A2FF"
       "FFFFFFFF"
       "080"
       "0E293"
       "0F9A2FF"
       "0FFFFFFFF"
       "0080"
       "00E293"
       "00F9A2FF"
       "00FFFFFFFF" |]

for hexString in hexStrings do
    let number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
    printfn $"Converted 0x{hexString} to {number:N0}."
// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
Imports System.Globalization
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim hexStrings() As String = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                                     "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                                     "0080", "00E293", "00F9A2FF", "00FFFFFFFF" }
      For Each hexString As String In hexStrings
         Dim number As BigInteger = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
      Next         
   End Sub
End Module
' The example displays the following output:
'       Converted 0x80 to -128.
'       Converted 0xE293 to -7533.
'       Converted 0xF9A2FF to -417025.
'       Converted 0xFFFFFFFF to -1.
'       Converted 0x080 to 128.
'       Converted 0x0E293 to 58003.
'       Converted 0x0F9A2FF to 16360191.
'       Converted 0x0FFFFFFFF to 4294967295.
'       Converted 0x0080 to 128.
'       Converted 0x00E293 to 58003.
'       Converted 0x00F9A2FF to 16360191.
'       Converted 0x00FFFFFFFF to 4294967295.

Parameter value diurai dengan menggunakan informasi pemformatan dalam objek yang diinisialisasi NumberFormatInfo untuk budaya sistem saat ini. Untuk menentukan budaya yang informasi pemformatannya digunakan untuk operasi penguraian, panggil Parse(String, NumberStyles, IFormatProvider) kelebihan beban.

Lihat juga

Berlaku untuk

Parse(String, IFormatProvider)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mengonversi representasi string dari angka dalam format khusus budaya tertentu menjadi BigInteger setara.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, IFormatProvider ^ provider);
public:
 static System::Numerics::BigInteger Parse(System::String ^ value, IFormatProvider ^ provider) = IParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse (string value, IFormatProvider provider);
public static System.Numerics.BigInteger Parse (string value, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, provider As IFormatProvider) As BigInteger

Parameter

value
String

String yang berisi angka yang akan dikonversi.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang value.

Mengembalikan

Nilai yang setara dengan angka yang ditentukan dalam value parameter .

Penerapan

Pengecualian

valueadalah null.

value tidak dalam format yang benar.

Contoh

Contoh berikut menunjukkan dua cara untuk menentukan tilde (~) sebagai tanda negatif untuk nilai pemformatan BigInteger . Perhatikan bahwa untuk menampilkan BigInteger nilai dalam format yang sama dengan string asli, kode Anda harus memanggil BigInteger.ToString(IFormatProvider) metode dan meneruskannya objek NumberFormatInfo yang menyediakan informasi pemformatan.

Contoh pertama mendefinisikan kelas yang mengimplementasikan IFormatProvider dan menggunakan GetFormat metode untuk mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan.

public class BigIntegerFormatProvider : IFormatProvider
{
   public object GetFormat(Type formatType)
   {
      if (formatType == typeof(NumberFormatInfo))
      {
         NumberFormatInfo numberFormat = new NumberFormatInfo();
         numberFormat.NegativeSign = "~";
         return numberFormat;
      }
      else
      {
         return null;
      }
   }
}
type BigIntegerFormatProvider() =
    interface IFormatProvider with

        member _.GetFormat(formatType: Type) =
            if formatType = typeof<NumberFormatInfo> then
                let numberFormat = NumberFormatInfo()
                numberFormat.NegativeSign <- "~"
                numberFormat
            else
                null
Public Class BigIntegerFormatProvider : Implements IFormatProvider
   Public Function GetFormat(formatType As Type) As Object _
                            Implements IFormatProvider.GetFormat
      If formatType Is GetType(NumberFormatInfo) Then
         Dim numberFormat As New NumberFormatInfo
         numberFormat.NegativeSign = "~"
         Return numberFormat
      Else
         Return Nothing
      End If      
   End Function
End Class

Objek BigInteger kemudian dapat dibuat dengan kode berikut:

BigInteger number = BigInteger.Parse("~6354129876", new BigIntegerFormatProvider());
// Display value using same formatting information
Console.WriteLine(number.ToString(new BigIntegerFormatProvider()));
// Display value using formatting of current culture
Console.WriteLine(number);
let number = BigInteger.Parse("~6354129876", BigIntegerFormatProvider())
printfn $"{number.ToString(BigIntegerFormatProvider())}"
printfn $"{number}"
Dim number As BigInteger = BigInteger.Parse("~6354129876", New BigIntegerFormatProvider)
' Display value using same formatting information
Console.WriteLine(number.ToString(New BigIntegerFormatProvider))
' Display value using formatting of current culture
Console.WriteLine(number)

Contoh kedua lebih mudah. Ini meneruskan NumberFormatInfo objek yang menyediakan informasi pemformatan ke provider parameter .

NumberFormatInfo fmt = new NumberFormatInfo();
fmt.NegativeSign = "~";

BigInteger number = BigInteger.Parse("~6354129876", fmt);
// Display value using same formatting information
Console.WriteLine(number.ToString(fmt));
// Display value using formatting of current culture
Console.WriteLine(number);
let fmt = NumberFormatInfo()
fmt.NegativeSign <- "~"

let number = BigInteger.Parse("~6354129876", fmt)
printfn $"{number.ToString fmt}"
printfn $"{number}"
Dim fmt As New NumberFormatInfo()
fmt.NegativeSign = "~"

Dim number As BigInteger = BigInteger.Parse("~6354129876", fmt)
' Display value using same formatting information
Console.WriteLine(number.ToString(fmt))
' Display value using formatting of current culture
Console.WriteLine(number)

Keterangan

Parameter value harus menjadi representasi string dari angka dalam formulir berikut:

[ws] [tanda tangan] digits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional.
sign Tanda opsional. Karakter tanda yang valid ditentukan oleh NumberFormatInfo.NegativeSign properti dan NumberFormatInfo.PositiveSign objek NumberFormatInfo yang dikembalikan oleh provider metode objek GetFormat .
Digit Urutan digit berkisar antara 0 hingga 9. Setiap nol di depan diabaikan.

Catatan

String yang ditentukan oleh value parameter ditafsirkan menggunakan NumberStyles.Integer gaya . Ini tidak boleh berisi pemisah grup atau pemisah desimal, dan tidak dapat memiliki bagian desimal.

Penting

Jika Anda menggunakan Parse metode untuk melakukan round-trip representasi string dari BigInteger nilai yang dihasilkan oleh ToString metode , Anda harus menggunakan BigInteger.ToString(String) metode dengan penentu format "R" untuk menghasilkan representasi string dari BigInteger nilai. Jika tidak, representasi string dari BigInteger mempertahankan hanya 50 digit paling signifikan dari nilai asli, dan data mungkin hilang ketika Anda menggunakan Parse metode untuk memulihkan BigInteger nilai.

Parameter provider adalah IFormatProvider implementasi yang metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan khusus budaya. Parse(String, IFormatProvider) Ketika metode dipanggil, metode ini memanggil provider metode parameter GetFormat dan meneruskannya objek Type yang mewakili NumberFormatInfo jenis . Metode GetFormat ini kemudian mengembalikan NumberFormatInfo objek yang menyediakan informasi tentang format value parameter. Ada tiga cara untuk menggunakan provider parameter untuk menyediakan informasi pemformatan kustom ke operasi penguraian:

  • Anda dapat meneruskan CultureInfo objek yang mewakili budaya yang memasok informasi pemformatan. Metodenya GetFormat mengembalikan objek yang menyediakan informasi pemformatan numerik untuk budaya tersebut NumberFormatInfo .

  • Anda dapat meneruskan objek aktual NumberFormatInfo yang menyediakan informasi pemformatan numerik. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)

  • Anda dapat meneruskan objek kustom yang mengimplementasikan IFormatProvider. Metodenya GetFormat membuat instans NumberFormatInfo dan mengembalikan objek yang menyediakan informasi pemformatan.

Jika provider adalah null, pemformatan value ditafsirkan berdasarkan NumberFormatInfo objek budaya saat ini.

Lihat juga

Berlaku untuk

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mengonversi representasi angka, yang terkandung dalam rentang karakter baca-saja yang ditentukan, dalam gaya yang ditentukan ke BigInteger yang setara.

public static System.Numerics.BigInteger Parse (ReadOnlySpan<char> value, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
public static System.Numerics.BigInteger Parse (ReadOnlySpan<char> value, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As BigInteger

Parameter

value
ReadOnlySpan<Char>

Rentang karakter baca-saja yang berisi angka yang akan dikonversi.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menentukan format yang diizinkan dari value.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang value.

Mengembalikan

Nilai yang setara dengan angka yang ditentukan dalam value parameter .

Penerapan

Pengecualian

style bukan nilai NumberStyles .

-atau-

style AllowHexSpecifier menyertakan bendera atau HexNumber bersama dengan nilai lain.

valueadalah null.

value tidak mematuhi pola input yang ditentukan oleh style.

Keterangan

Parameter style mendefinisikan elemen gaya (seperti spasi putih, simbol tanda positif atau negatif, simbol pemisah grup, atau simbol titik desimal) yang diizinkan dalam value parameter agar operasi penguraian berhasil. styles harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Parameter style membuat metode ini kelebihan beban berguna ketika value berisi representasi nilai heksadesimal, ketika sistem angka (desimal atau heksadesimal) yang diwakili oleh value hanya diketahui pada waktu proses, atau ketika Anda ingin melarang spasi putih atau simbol tanda di value.

Bergantung pada nilai style, value parameter dapat mencakup elemen berikut:

[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Jika style menyertakan NumberStyles.AllowHexSpecifier, value parameter dapat menyertakan elemen berikut:

[ws] hexdigits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingWhite bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya di didefinisikan oleh NumberFormatInfo.CurrencyNegativePattern sifat dan NumberFormatInfo.CurrencyPositivePattern dari budaya yang ditunjukkan value oleh provider parameter . Simbol mata uang budaya saat ini dapat muncul jika valuestyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan value untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera .
Digit

fractional_digits

exponential_digits
Urutan digit dari 0 hingga 9. Untuk fractional_digits, hanya digit 0 yang valid.
, Simbol pemisah grup khusus budaya. Simbol pemisah grup dari budaya yang ditentukan oleh provider dapat muncul jika valuestyle menyertakan NumberStyles.AllowThousands bendera .
. Simbol titik desimal khusus budaya. Simbol titik desimal dari budaya yang ditunjuk oleh provider dapat muncul jika stylevalue menyertakan NumberStyles.AllowDecimalPoint bendera . Hanya digit 0 yang dapat muncul sebagai digit pecahan agar operasi penguraian berhasil; jika fractional_digits menyertakan digit lain, akan FormatException dilemparkan.
E Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Setiap karakter NUL yang mengakhiri (U+0000) di s diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

Dengan value digit saja (yang sesuai dengan NumberStyles.None gaya) selalu berhasil diurai. Sebagian besar anggota yang tersisa NumberStyles mengontrol elemen yang mungkin ada, tetapi tidak diharuskan ada, di value. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di value.

Nilai NumberStyles Elemen yang diizinkan dalam nilai selain digit
None Elemen digit saja.
AllowDecimalPoint Elemen titik desimal (.) dan fractional-digits .
AllowExponent Karakter "e" atau "E", yang menunjukkan notasi eksponensial. bersama dengan exponential_digits.
AllowLeadingWhite Elemen ws di awal value.
AllowTrailingWhite Elemen ws di akhir value.
AllowLeadingSign Elemen tanda di awal value.
AllowTrailingSign Elemen tanda di akhir value.
AllowParentheses Elemen tanda dalam bentuk tanda kurung yang menyertakan nilai numerik.
AllowThousands Elemen pemisah grup (,).
AllowCurrencySymbol Elemen mata uang ($).
Currency Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial.
Float Elemen ws di awal atau akhir , valuetanda di awal value, dan simbol titik desimal (.). Parameter value juga dapat menggunakan notasi eksponensial.
Number Elemen ws, sign, pemisah grup (,), dan desimal (.).
Any Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal.

Tidak seperti nilai lain NumberStyles , yang memungkinkan tetapi tidak memerlukan kehadiran elemen gaya tertentu dalam value, NumberStyles.AllowHexSpecifier nilai gaya berarti bahwa karakter numerik individu di selalu ditafsirkan value sebagai karakter heksadesimal. Karakter heksadesimal yang valid adalah 0-9, A-F, dan a-f. Satu-satunya bendera lain yang dapat dikombinasikan dengan style parameter adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles mencakup gaya angka komposit, HexNumber, yang mencakup kedua bendera spasi putih.)

Parameter provider adalah IFormatProvider implementasi. Metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi khusus budaya tentang format value. Biasanya, provider dapat berupa salah satu hal berikut:

  • Objek CultureInfo yang mewakili budaya yang menyediakan informasi pemformatan numerik. Metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan numerik.

  • Objek NumberFormatInfo yang menyediakan informasi pemformatan. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)

  • Objek kustom yang mengimplementasikan IFormatProvider dan menggunakan metode untuk membuat instans GetFormat dan mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan.

Jika provider adalah null, NumberFormatInfo objek untuk budaya saat ini digunakan.

Lihat juga

Berlaku untuk

Parse(String, NumberStyles, IFormatProvider)

Sumber:
BigInteger.cs
Sumber:
BigInteger.cs
Sumber:
BigInteger.cs

Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya menjadi BigInteger setara.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse (string value, System.Globalization.NumberStyles style, IFormatProvider provider);
public static System.Numerics.BigInteger Parse (string value, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, style As NumberStyles, provider As IFormatProvider) As BigInteger

Parameter

value
String

String yang berisi angka yang akan dikonversi.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menentukan format yang diizinkan dari value.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang value.

Mengembalikan

Nilai yang setara dengan angka yang ditentukan dalam value parameter .

Penerapan

Pengecualian

style bukan nilai NumberStyles .

-atau-

style AllowHexSpecifier menyertakan bendera atau HexNumber bersama dengan nilai lain.

valueadalah null.

value tidak mematuhi pola input yang ditentukan oleh style.

Contoh

Contoh berikut melakukan beberapa panggilan ke Parse(String, NumberStyles, IFormatProvider) metode menggunakan berbagai kombinasi nilai untuk style parameter dan provider .

// Call parse with default values of style and provider
Console.WriteLine(BigInteger.Parse("  -300   ",
                  NumberStyles.Integer, CultureInfo.CurrentCulture));
// Call parse with default values of style and provider supporting tilde as negative sign
Console.WriteLine(BigInteger.Parse("   ~300  ",
                                   NumberStyles.Integer, new BigIntegerFormatProvider()));
// Call parse with only AllowLeadingWhite and AllowTrailingWhite
// Exception thrown because of presence of negative sign
try
{
   Console.WriteLine(BigInteger.Parse("    ~300   ",
                                NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite,
                                new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}
// Call parse with only AllowHexSpecifier
// Exception thrown because of presence of negative sign
try
{
   Console.WriteLine(BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier,
                                      new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}
// Call parse with only NumberStyles.None
// Exception thrown because of presence of white space and sign
try
{
   Console.WriteLine(BigInteger.Parse(" -300 ", NumberStyles.None,
                                      new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}
// The example displays the followingoutput:
//       -300
//       -300
//       FormatException:
//          The value could not be parsed.
//       FormatException:
//          The value could not be parsed.
//       FormatException:
//          The value could not be parsed.
    // Call parse with default values of style and provider
    printfn $"""{BigInteger.Parse("  -300   ", NumberStyles.Integer, CultureInfo.CurrentCulture)}"""

    // Call parse with default values of style and provider supporting tilde as negative sign
    printfn $"""{BigInteger.Parse("   ~300  ", NumberStyles.Integer, new BigIntegerFormatProvider())}"""

    // Call parse with only AllowLeadingWhite and AllowTrailingWhite
    // Exception thrown because of presence of negative sign
    try
        printfn
            $"""{BigInteger.Parse(
                     "    ~300   ",
                     NumberStyles.AllowLeadingWhite ||| NumberStyles.AllowTrailingWhite,
                     new BigIntegerFormatProvider()
                 )}"""
    with :? FormatException as e ->
        printfn $"{e.GetType().Name}: \n   {e.Message}"

    // Call parse with only AllowHexSpecifier
    // Exception thrown because of presence of negative sign
    try
        printfn $"""{BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, new BigIntegerFormatProvider())}"""
    with :? FormatException as e ->
        printfn $"{e.GetType().Name}: \n   {e.Message}"

    // Call parse with only NumberStyles.None
    // Exception thrown because of presence of white space and sign
    try
        printfn $"""{BigInteger.Parse(" -300 ", NumberStyles.None, new BigIntegerFormatProvider())}"""
    with :? FormatException as e ->
        printfn $"{e.GetType().Name}: \n   {e.Message}"
// The example displays the followingoutput:
//       -300
//       -300
//       FormatException:
//          The value could not be parsed.
//       FormatException:
//          The value could not be parsed.
//       FormatException:
//          The value could not be parsed.
' Call parse with default values of style and provider
Console.WriteLine(BigInteger.Parse("  -300   ", _
                  NumberStyles.Integer, CultureInfo.CurrentCulture))
' Call parse with default values of style and provider supporting tilde as negative sign
Console.WriteLine(BigInteger.Parse("   ~300  ", _
                                   NumberStyles.Integer, New BigIntegerFormatProvider()))
' Call parse with only AllowLeadingWhite and AllowTrailingWhite
' Exception thrown because of presence of negative sign
Try
   Console.WriteLIne(BigInteger.Parse("    ~300   ", _
                                      NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try                                   
' Call parse with only AllowHexSpecifier
' Exception thrown because of presence of negative sign
Try
   Console.WriteLIne(BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try                                 
' Call parse with only NumberStyles.None
' Exception thrown because of presence of white space and sign
Try
   Console.WriteLIne(BigInteger.Parse(" -300 ", NumberStyles.None, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try
' The example displays the following output:
'       -300
'       -300
'       FormatException:
'          The value could not be parsed.
'       FormatException:
'          The value could not be parsed.
'       FormatException:
'          The value could not be parsed.

Sejumlah panggilan individu ke Parse(String, NumberStyles, IFormatProvider) metode meneruskan instans kelas berikut BigIntegerFormatProvider , yang mendefinisikan tilde (~) sebagai tanda negatif.

public class BigIntegerFormatProvider : IFormatProvider
{
   public object GetFormat(Type formatType)
   {
      if (formatType == typeof(NumberFormatInfo))
      {
         NumberFormatInfo numberFormat = new NumberFormatInfo();
         numberFormat.NegativeSign = "~";
         return numberFormat;
      }
      else
      {
         return null;
      }
   }
}
type BigIntegerFormatProvider() =
    interface IFormatProvider with

        member _.GetFormat(formatType: Type) =
            if formatType = typeof<NumberFormatInfo> then
                let numberFormat = NumberFormatInfo()
                numberFormat.NegativeSign <- "~"
                numberFormat
            else
                null
Public Class BigIntegerFormatProvider : Implements IFormatProvider
   Public Function GetFormat(formatType As Type) As Object _
                            Implements IFormatProvider.GetFormat
      If formatType Is GetType(NumberFormatInfo) Then
         Dim numberFormat As New NumberFormatInfo
         numberFormat.NegativeSign = "~"
         Return numberFormat
      Else
         Return Nothing
      End If      
   End Function
End Class

Keterangan

Parameter style menentukan elemen gaya (seperti spasi putih, simbol tanda positif atau negatif, simbol pemisah grup, atau simbol titik desimal) yang diizinkan dalam value parameter agar operasi penguraian berhasil. styles harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Parameter style membuat metode ini kelebihan beban berguna ketika value berisi representasi string dari nilai heksadesimal, ketika sistem angka (desimal atau heksadesimal) yang diwakili oleh value hanya diketahui pada durasi, atau ketika Anda ingin melarang spasi putih atau simbol tanda di value.

Bergantung pada nilai style, value parameter dapat mencakup elemen berikut:

[ws] [$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Jika style menyertakan NumberStyles.AllowHexSpecifier, value parameter dapat menyertakan elemen berikut:

[ws] hexdigits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingWhite bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh NumberFormatInfo.CurrencyNegativePattern properti dan NumberFormatInfo.CurrencyPositivePattern budaya yang ditunjukkan oleh provider parameter . Simbol mata uang budaya saat ini dapat muncul jika valuestyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal value jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir value jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan value untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera .
Digit

fractional_digits

exponential_digits
Urutan digit dari 0 hingga 9. Untuk fractional_digits, hanya digit 0 yang valid.
, Simbol pemisah grup khusus budaya. Simbol pemisah grup dari budaya yang ditentukan oleh provider dapat muncul jika valuestyle menyertakan NumberStyles.AllowThousands bendera .
. Simbol titik desimal khusus budaya. Simbol titik desimal dari budaya yang ditunjuk oleh provider dapat muncul jika stylevalue menyertakan NumberStyles.AllowDecimalPoint bendera . Hanya digit 0 yang dapat muncul sebagai digit pecahan agar operasi penguraian berhasil; jika fractional_digits menyertakan digit lain, akan FormatException dilemparkan.
E Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter value dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Setiap karakter NUL yang mengakhiri (U+0000) di s diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

String dengan digit saja (yang sesuai dengan NumberStyles.None gaya) selalu berhasil diurai. Sebagian besar elemen kontrol anggota yang tersisa NumberStyles yang mungkin ada, tetapi tidak diharuskan ada, dalam string input. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di value.

Nilai NumberStyles Elemen yang diizinkan dalam nilai selain digit
None Elemen digit saja.
AllowDecimalPoint Elemen titik desimal (.) dan fractional-digits .
AllowExponent Karakter "e" atau "E", yang menunjukkan notasi eksponensial. bersama dengan exponential_digits.
AllowLeadingWhite Elemen ws di awal value.
AllowTrailingWhite Elemen ws di akhir value.
AllowLeadingSign Elemen tanda di awal value.
AllowTrailingSign Elemen tanda di akhir value.
AllowParentheses Elemen tanda dalam bentuk tanda kurung yang menyertakan nilai numerik.
AllowThousands Elemen pemisah grup (,).
AllowCurrencySymbol Elemen mata uang ($).
Currency Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial.
Float Elemen ws di awal atau akhir , valuetanda di awal value, dan simbol titik desimal (.). Parameter value juga dapat menggunakan notasi eksponensial.
Number Elemen ws, sign, pemisah grup (,), dan desimal (.).
Any Semua elemen. Namun, value tidak dapat mewakili angka heksadesimal.

Penting

Jika Anda menggunakan Parse metode untuk melakukan round-trip representasi string dari BigInteger nilai yang dihasilkan oleh ToString metode , Anda harus menggunakan BigInteger.ToString(String) metode dengan penentu format "R" untuk menghasilkan representasi string nilai BigInteger . Jika tidak, representasi string dari BigInteger mempertahankan hanya 50 digit paling signifikan dari nilai asli, dan data mungkin hilang ketika Anda menggunakan Parse metode untuk memulihkan BigInteger nilai.

Tidak seperti nilai lain NumberStyles , yang memungkinkan tetapi tidak memerlukan kehadiran elemen gaya tertentu dalam value, NumberStyles.AllowHexSpecifier nilai gaya berarti bahwa karakter numerik individu di selalu ditafsirkan value sebagai karakter heksadesimal. Karakter heksadesimal yang valid adalah 0-9, A-F, dan a-f. Satu-satunya bendera lain yang dapat dikombinasikan dengan style parameter adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles mencakup gaya angka komposit, HexNumber, yang mencakup kedua bendera spasi putih.)

Catatan

Jika value merupakan representasi string dari angka heksadesimal, itu tidak dapat didahului oleh dekorasi apa pun (seperti 0x atau &h) yang membedakannya sebagai angka heksadesimal. Hal ini menyebabkan konversi gagal.

Jika value adalah string heksadesimal, Parse(String, NumberStyles) metode menafsirkan value sebagai angka negatif yang disimpan dengan menggunakan representasi pelengkap dua jika dua digit heksadesimal pertamanya lebih besar dari atau sama dengan 0x80. Dengan kata lain, metode ini menafsirkan bit urutan tertinggi dari byte pertama sebagai value bit tanda. Untuk memastikan bahwa string heksadesimal ditafsirkan dengan benar sebagai angka positif, digit pertama di value harus memiliki nilai nol. Misalnya, metode ini menafsirkan 0x80 sebagai nilai negatif, tetapi menafsirkan salah satu 0x080 atau 0x0080 sebagai nilai positif. Contoh berikut mengilustrasikan perbedaan antara string heksadesimal yang mewakili nilai negatif dan positif.

using System;
using System.Globalization;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      string[] hexStrings = { "80", "E293", "F9A2FF", "FFFFFFFF",
                              "080", "0E293", "0F9A2FF", "0FFFFFFFF",
                              "0080", "00E293", "00F9A2FF", "00FFFFFFFF" };
      foreach (string hexString in hexStrings)
      {
         BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
      }
   }
}
// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
open System.Globalization
open System.Numerics

let hexStrings =
    [| "80"
       "E293"
       "F9A2FF"
       "FFFFFFFF"
       "080"
       "0E293"
       "0F9A2FF"
       "0FFFFFFFF"
       "0080"
       "00E293"
       "00F9A2FF"
       "00FFFFFFFF" |]

for hexString in hexStrings do
    let number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
    printfn $"Converted 0x{hexString} to {number:N0}."
// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
Imports System.Globalization
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim hexStrings() As String = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                                     "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                                     "0080", "00E293", "00F9A2FF", "00FFFFFFFF" }
      For Each hexString As String In hexStrings
         Dim number As BigInteger = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
      Next         
   End Sub
End Module
' The example displays the following output:
'       Converted 0x80 to -128.
'       Converted 0xE293 to -7533.
'       Converted 0xF9A2FF to -417025.
'       Converted 0xFFFFFFFF to -1.
'       Converted 0x080 to 128.
'       Converted 0x0E293 to 58003.
'       Converted 0x0F9A2FF to 16360191.
'       Converted 0x0FFFFFFFF to 4294967295.
'       Converted 0x0080 to 128.
'       Converted 0x00E293 to 58003.
'       Converted 0x00F9A2FF to 16360191.
'       Converted 0x00FFFFFFFF to 4294967295.

Parameter provider adalah IFormatProvider implementasi. Metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi khusus budaya tentang format value. Biasanya, provider dapat berupa salah satu hal berikut:

  • Objek CultureInfo yang mewakili budaya yang menyediakan informasi pemformatan numerik. Metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan numerik.

  • Objek NumberFormatInfo yang menyediakan informasi pemformatan. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)

  • Objek kustom yang mengimplementasikan IFormatProvider dan menggunakan metode untuk membuat instans GetFormat dan mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan.

Jika provider adalah null, NumberFormatInfo objek untuk budaya saat ini digunakan.

Lihat juga

Berlaku untuk