BigInteger.Parse Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
value
adalah 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.
value
adalah 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 value style 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 value style menyertakan NumberStyles.AllowThousands bendera . |
. | Simbol titik desimal khusus budaya. Simbol titik desimal budaya saat ini dapat muncul jika value style 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 , value tanda 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
value
adalah 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.
value
adalah 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 value style 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 value style menyertakan NumberStyles.AllowThousands bendera . |
. | Simbol titik desimal khusus budaya. Simbol titik desimal dari budaya yang ditunjuk oleh provider dapat muncul jika style value 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 , value tanda 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.
value
adalah 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 value style 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 value style menyertakan NumberStyles.AllowThousands bendera . |
. | Simbol titik desimal khusus budaya. Simbol titik desimal dari budaya yang ditunjuk oleh provider dapat muncul jika style value 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 , value tanda 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.