Single.TryParse Metode

Definisi

Mengonversi representasi string angka ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

Overload

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Mencoba mengurai rentang karakter ke dalam nilai.

TryParse(ReadOnlySpan<Char>, Single)

Mengonversi representasi string dari angka dalam rentang karakter ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

TryParse(String, Single)

Mengonversi representasi string dari angka ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.

TryParse(String, IFormatProvider, Single)

Mencoba mengurai string ke dalam nilai.

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Single)

Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.

TryParse(ReadOnlySpan<Byte>, Single)

Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke angka floating-point presisi tunggal yang setara.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Single)

Mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

TryParse(String, NumberStyles, IFormatProvider, Single)

Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

Keterangan

Di .NET Core 3.0 dan yang lebih baru, nilai yang terlalu besar untuk direpresentasikan dibulatkan ke PositiveInfinity atau NegativeInfinity sebagaimana diperlukan oleh spesifikasi IEEE 754. Dalam versi sebelumnya, termasuk .NET Framework, mengurai nilai yang terlalu besar untuk diwakili mengakibatkan kegagalan.

TryParse(ReadOnlySpan<Char>, IFormatProvider, Single)

Sumber:
Single.cs
Sumber:
Single.cs
Sumber:
Single.cs

Mencoba mengurai rentang karakter ke dalam nilai.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = ISpanParsable<float>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Single) As Boolean

Parameter

s
ReadOnlySpan<Char>

Rentang karakter untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

result
Single

Ketika metode ini kembali, berisi hasil penguraian yang berhasil s, atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika s berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(ReadOnlySpan<Char>, Single)

Sumber:
Single.cs
Sumber:
Single.cs
Sumber:
Single.cs

Mengonversi representasi string dari angka dalam rentang karakter ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] float % result);
public static bool TryParse (ReadOnlySpan<char> s, out float result);
static member TryParse : ReadOnlySpan<char> * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Single) As Boolean

Parameter

s
ReadOnlySpan<Char>

>Rentang karakter yang berisi representasi string dari angka yang akan dikonversi.

result
Single

Ketika metode ini kembali, berisi angka floating-point presisi tunggal yang setara s dengan parameter, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika s parameter adalah null atau kosong atau bukan angka dalam format yang valid. Jika s adalah angka yang valid kurang dari Single.MinValue, result adalah NegativeInfinity. Jika s adalah angka valid yang lebih besar dari Single.MaxValue, result adalah PositiveInfinity. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan akan ditimpa result .

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Keterangan

Dalam .NET Core 3.0 dan yang lebih baru, nilai yang terlalu besar untuk direpresentasikan dibulatkan ke PositiveInfinity atau NegativeInfinity sebagaimana diperlukan oleh spesifikasi IEEE 754. Dalam versi sebelumnya, termasuk .NET Framework, mengurai nilai yang terlalu besar untuk diwakili mengakibatkan kegagalan.

Berlaku untuk

TryParse(String, Single)

Sumber:
Single.cs
Sumber:
Single.cs
Sumber:
Single.cs

Mengonversi representasi string dari angka ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] float % result);
public static bool TryParse (string s, out float result);
public static bool TryParse (string? s, out float result);
static member TryParse : string * single -> bool
Public Shared Function TryParse (s As String, ByRef result As Single) As Boolean

Parameter

s
String

String yang mewakili angka untuk dikonversi.

result
Single

Ketika metode ini kembali, berisi angka floating-point presisi tunggal yang setara dengan nilai numerik atau simbol yang terkandung dalam s, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika s parameter adalah null atau Empty atau bukan angka dalam format yang valid. Ini juga gagal pada .NET Framework dan .NET Core 2.2 dan versi yang lebih lama jika s mewakili angka yang kurang dari Single.MinValue atau lebih besar dari Single.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan akan ditimpa result .

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Contoh

Contoh berikut menggunakan TryParse(String, Single) metode untuk mengonversi representasi string dari nilai numerik menjadi Single nilai. Ini mengasumsikan bahwa en-US adalah budaya saat ini.

string value;
float number;

// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a floating-point value with a currency symbol and a
// thousands separator.
value = "$1,643.57";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse value in exponential notation.
value = "-1.643e6";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);

// Parse a negative integer value.
value = "-168934617882109132";
if (Single.TryParse(value, out number))
   Console.WriteLine(number);
else
   Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output:
//       1643.57
//       Unable to parse '$1,643.57'.
//       -164300
//       -1.689346E+17
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse a floating-point value with a currency symbol and a
// thousands separator.
let value = "$1,643.57"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse value in exponential notation.
let value = "-1.643e6"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."

// Parse a negative integer value.
let value = "-168934617882109132"
match Single.TryParse value with
| true, number ->
    printfn $"{number}"
| _ ->
    printfn $"Unable to parse '{value}'."
// The example displays the following output:
//       1643.57
//       Unable to parse '$1,643.57'.
//       -164300
//       -1.689346E+17
Dim value As String
Dim number As Single

' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Single.TryParse(value, number) Then
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse a floating-point value with a currency symbol and a
' thousands separator.
value = "$1,643.57"
If Single.TryParse(value, number) Then
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse value in exponential notation.
value = "-1.643e6"
If Single.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If

' Parse a negative integer number.
value = "-168934617882109132"
If Single.TryParse(value, number)
   Console.WriteLine(number)
Else
   Console.WriteLine("Unable to parse '{0}'.", value)
End If
' The example displays the following output:
'       1643.57
'       Unable to parse '$1,643.57'.
'       -1643000
'       -1.689346E+17

Keterangan

Dalam .NET Core 3.0 dan yang lebih baru, nilai yang terlalu besar untuk direpresentasikan dibulatkan ke PositiveInfinity atau NegativeInfinity sebagaimana diperlukan oleh spesifikasi IEEE 754. Dalam versi sebelumnya, termasuk .NET Framework, mengurai nilai yang terlalu besar untuk diwakili mengakibatkan kegagalan.

Kelebihan beban ini berbeda dari Single.Parse(String) metode dengan mengembalikan nilai Boolean yang menunjukkan apakah operasi penguraian berhasil alih-alih mengembalikan nilai numerik yang diurai. Ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk FormatException menguji jika s tidak valid dan tidak dapat berhasil diurai.

Parameter s dapat berisi PositiveInfinitySymbol, NegativeInfinitySymbol, NaNSymbol (perbandingan string peka huruf besar/kecil), atau string formulir:

[ws] [tanda] [integral-digits,]integral-digits[.[ fractional-digits]][e[sign]exponential-digits][ws]

Elemen dalam tanda kurung siku bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Serangkaian karakter spasi putih.
sign Tanda negatif atau simbol tanda positif.
integral-digits Serangkaian karakter numerik mulai dari 0 hingga 9 yang menentukan bagian integral dari angka tersebut. Digit integral dapat tidak ada jika ada digit pecahan.
, Simbol pemisah grup khusus budaya.
. Simbol titik desimal khusus budaya.
fractional-digits Serangkaian karakter numerik mulai dari 0 hingga 9 yang menentukan bagian pecahan dari angka tersebut.
E Karakter huruf besar atau huruf kecil 'e', yang menunjukkan notasi eksponensial (ilmiah).
digit eksponensial Serangkaian karakter numerik mulai dari 0 hingga 9 yang menentukan eksponen.

Parameter s ditafsirkan menggunakan kombinasi NumberStyles.Float bendera dan NumberStyles.AllowThousands . Ini berarti bahwa spasi kosong dan ribuan pemisah diizinkan tetapi simbol mata uang tidak. Untuk secara eksplisit mendefinisikan elemen (seperti simbol mata uang, pemisah ribuan, dan spasi putih) yang dapat ada di s, gunakan TryParse(String, NumberStyles, IFormatProvider, Single) metode kelebihan beban.

Parameter s diurai menggunakan informasi pemformatan dalam objek yang diinisialisasi NumberFormatInfo untuk budaya sistem saat ini. Untuk informasi selengkapnya, lihat NumberFormatInfo.CurrentInfo. Untuk mengurai string menggunakan informasi pemformatan dari beberapa budaya tertentu lainnya, gunakan TryParse(String, NumberStyles, IFormatProvider, Single) metode kelebihan beban.

Biasanya, jika Anda meneruskan Single.TryParse metode string yang dibuat dengan memanggil Single.ToString metode , nilai asli Single dikembalikan. Namun, karena hilangnya presisi, nilainya mungkin tidak sama.

Jika s berada di luar rentang Single jenis data, metode akan kembali false pada .NET Framework dan .NET Core 2.2 dan versi yang lebih lama. Pada .NET Core 3.0 dan versi yang lebih baru, ia mengembalikan Single.NegativeInfinity jika s kurang dari Single.MinValue dan Single.PositiveInfinity jika s lebih besar dari Single.MaxValue.

Jika pemisah ditemui dalam s parameter selama operasi penguraian, dan pemisah mata uang atau angka desimal dan grup yang berlaku sama, operasi penguraian mengasumsikan bahwa pemisah adalah pemisah desimal daripada pemisah grup. Untuk informasi selengkapnya tentang pemisah, lihat CurrencyDecimalSeparator, , NumberDecimalSeparatorCurrencyGroupSeparator, dan NumberGroupSeparator.

Lihat juga

Berlaku untuk

TryParse(ReadOnlySpan<Byte>, IFormatProvider, Single)

Sumber:
Single.cs
Sumber:
Single.cs

Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = IUtf8SpanParsable<float>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Single) As Boolean

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang karakter UTF-8 untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text.

result
Single

Saat dikembalikan, berisi hasil penguraian yang berhasil utf8Text atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika utf8Text berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(String, IFormatProvider, Single)

Sumber:
Single.cs
Sumber:
Single.cs
Sumber:
Single.cs

Mencoba mengurai string ke dalam nilai.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = IParsable<float>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out float result);
static member TryParse : string * IFormatProvider * single -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Single) As Boolean

Parameter

s
String

String yang akan diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

result
Single

Ketika metode ini kembali, berisi hasil penguraian yang berhasil s atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika s berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Single)

Sumber:
Single.cs
Sumber:
Single.cs

Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang karakter UTF-8 untuk diurai.

style
NumberStyles

Kombinasi bitwise gaya angka yang dapat ada di utf8Text.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text.

result
Single

Saat dikembalikan, berisi hasil penguraian yang berhasil utf8Text atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika utf8Text berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(ReadOnlySpan<Byte>, Single)

Sumber:
Single.cs
Sumber:
Single.cs

Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke angka floating-point presisi tunggal yang setara.

public:
 static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] float % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out float result);
static member TryParse : ReadOnlySpan<byte> * single -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Single) As Boolean

Parameter

utf8Text
ReadOnlySpan<Byte>

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

result
Single

Ketika metode ini kembali, berisi angka floating-point presisi tunggal yang setara dengan nilai numerik atau simbol yang terkandung dalam utf8Text jika konversi berhasil atau nol jika konversi gagal. Konversi gagal jika utf8Text adalah Empty atau tidak dalam format yang valid. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan dalam hasil akan ditimpa.

Mengembalikan

true jika utf8Text berhasil dikonversi; jika tidak, false.

Berlaku untuk

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Single)

Sumber:
Single.cs
Sumber:
Single.cs
Sumber:
Single.cs

Mengonversi representasi rentang angka dalam gaya tertentu dan format khusus budaya ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result);
public:
 static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out float result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

Parameter

s
ReadOnlySpan<Char>

Rentang karakter baca-saja yang berisi angka yang akan dikonversi. Rentang ditafsirkan menggunakan gaya yang ditentukan oleh style.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari s. Nilai umum yang ditentukan dikombinasikan Float dengan AllowThousands.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

result
Single

Ketika metode ini kembali, berisi angka floating-point presisi tunggal yang setara dengan nilai numerik atau simbol yang terkandung dalam s, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika s parameter adalah null atau Empty, tidak dalam format yang sesuai dengan style, mewakili angka yang kurang dari Single.MinValue atau lebih besar dari Single.MaxValue, atau jika style bukan kombinasi NumberStyles konstanta enumerasi yang valid. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan akan ditimpa result .

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Keterangan

Dalam .NET Core 3.0 dan yang lebih baru, nilai yang terlalu besar untuk direpresentasikan dibulatkan ke PositiveInfinity atau NegativeInfinity sebagaimana diperlukan oleh spesifikasi IEEE 754. Dalam versi sebelumnya, termasuk .NET Framework, mengurai nilai yang terlalu besar untuk diwakili mengakibatkan kegagalan.

Berlaku untuk

TryParse(String, NumberStyles, IFormatProvider, Single)

Sumber:
Single.cs
Sumber:
Single.cs
Sumber:
Single.cs

Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke angka floating-point presisi tunggal yang setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil atau gagal.

public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result);
public:
 static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] float % result) = System::Numerics::INumberBase<float>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out float result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out float result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * single -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Single) As Boolean

Parameter

s
String

String yang mewakili angka untuk dikonversi.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari s. Nilai umum yang ditentukan dikombinasikan Float dengan AllowThousands.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

result
Single

Ketika metode ini kembali, berisi angka floating-point presisi tunggal yang setara dengan nilai numerik atau simbol yang terkandung dalam s, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika s parameter adalah null atau Empty, tidak dalam format yang sesuai dengan style, atau jika style bukan kombinasi NumberStyles konstanta enumerasi yang valid. Ini juga gagal pada .NET Framework atau .NET Core 2.2 dan versi yang lebih lama jika s mewakili angka yang kurang dari Single.MinValue atau lebih besar dari Single.MaxValue. Parameter ini diteruskan tanpa diinisialisasi; nilai apa pun yang awalnya disediakan akan ditimpa result .

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Pengecualian

style bukan nilai NumberStyles .

-atau-

style adalah nilainya AllowHexSpecifier .

Contoh

Contoh berikut menunjukkan penggunaan Single.TryParse(String, NumberStyles, IFormatProvider, Single) metode untuk mengurai representasi string angka yang memiliki gaya tertentu dan diformat menggunakan konvensi budaya tertentu.

string value;
System.Globalization.NumberStyles style;
System.Globalization.CultureInfo culture;
float number;

// Parse currency value using en-GB culture.
value = "£1,097.63";
style = System.Globalization.NumberStyles.Number |
        System.Globalization.NumberStyles.AllowCurrencySymbol;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1345,978";
style = System.Globalization.NumberStyles.AllowDecimalPoint;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1.345,978";
style = System.Globalization.NumberStyles.AllowDecimalPoint |
        System.Globalization.NumberStyles.AllowThousands;
culture = System.Globalization.CultureInfo.CreateSpecificCulture("es-ES");
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);

value = "1 345,978";
if (Single.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// The example displays the following output:
//       Converted '£1,097.63' to 1097.63.
//       Converted '1345,978' to 1345.978.
//       Converted '1.345,978' to 1345.978.
//       Unable to convert '1 345,978'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = System.Globalization.NumberStyles.Number ||| System.Globalization.NumberStyles.AllowCurrencySymbol
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "en-GB"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1345,978"
let style = System.Globalization.NumberStyles.AllowDecimalPoint
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "fr-FR"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1.345,978"
let style = System.Globalization.NumberStyles.AllowDecimalPoint ||| System.Globalization.NumberStyles.AllowThousands
let culture = System.Globalization.CultureInfo.CreateSpecificCulture "es-ES"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."

let value = "1 345,978"
match Single.TryParse(value, style, culture) with
| true, number ->
    printfn $"Converted '{value}' to {number}."
| _ ->
    printfn $"Unable to convert '{value}'."
// The example displays the following output:
//       Converted '£1,097.63' to 1097.63.
//       Converted '1345,978' to 1345.978.
//       Converted '1.345,978' to 1345.978.
//       Unable to convert '1 345,978'.
Dim value As String
Dim style As System.Globalization.NumberStyles
Dim culture As System.Globalization.CultureInfo
Dim number As Single

' Parse currency value using en-GB culture.
value = "£1,097.63"
style = System.Globalization.NumberStyles.Number Or _
        System.Globalization.NumberStyles.AllowCurrencySymbol
culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1345,978"
style = System.Globalization.NumberStyles.AllowDecimalPoint
culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1.345,978"
style = System.Globalization.NumberStyles.AllowDecimalPoint Or _
        System.Globalization.NumberStyles.AllowThousands
culture = System.Globalization.CultureInfo.CreateSpecificCulture("es-ES")
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If

value = "1 345,978"
If Single.TryParse(value, style, culture, number) Then
   Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
   Console.WriteLine("Unable to convert '{0}'.", value)
End If
' The example displays the following output:
'       Converted '£1,097.63' to 1097.63.
'       Converted '1345,978' to 1345.978.
'       Converted '1.345,978' to 1345.978.
'       Unable to convert '1 345,978'.

Keterangan

Dalam .NET Core 3.0 dan yang lebih baru, nilai yang terlalu besar untuk direpresentasikan dibulatkan ke PositiveInfinity atau NegativeInfinity sebagaimana diperlukan oleh spesifikasi IEEE 754. Dalam versi sebelumnya, termasuk .NET Framework, mengurai nilai yang terlalu besar untuk diwakili mengakibatkan kegagalan.

Kelebihan beban ini berbeda dari Parse(String, NumberStyles, IFormatProvider) metode dengan mengembalikan nilai Boolean yang menunjukkan apakah operasi penguraian berhasil alih-alih mengembalikan nilai numerik yang diurai. Ini menghilangkan kebutuhan untuk menggunakan penanganan pengecualian untuk FormatException menguji jika s tidak valid dan tidak dapat berhasil diurai.

Parameter style menentukan format parameter yang s diizinkan agar operasi penguraian berhasil. Ini harus berupa kombinasi bendera bit dari NumberStyles enumerasi. Anggota berikut NumberStyles ini tidak didukung:

Parameter s dapat berisi PositiveInfinitySymbol, NegativeInfinitySymbol, NaNSymbol untuk budaya yang ditunjukkan oleh provider. Selain itu, tergantung pada nilai style, s parameter dapat mencakup elemen berikut:

[ws] [$] [tanda] [integral-digits,]integral-digits[.fractional-digits][e[sign]exponential-digits][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 s jika style menyertakan NumberStyles.AllowLeadingWhite bendera. Ini dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingWhite bendera .
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh NumberFormatInfo.CurrencyNegativePattern properti atau NumberFormatInfo.CurrencyPositivePattern objek yang NumberFormatInfo dikembalikan oleh IFormatProvider.GetFormat metode provider parameter . Simbol mata uang dapat muncul jika sstyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan s untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera .
integral-digits Serangkaian digit mulai dari 0 hingga 9 yang menentukan bagian integral dari angka tersebut. Digit integral dapat tidak ada jika ada digit pecahan.
, Simbol pemisah ribuan khusus budaya. Simbol pemisah ribuan budaya saat ini dapat muncul jika sstyle menyertakan NumberStyles.AllowThousands bendera .
. Simbol titik desimal khusus budaya. Simbol titik desimal budaya saat ini dapat muncul jika sstyle menyertakan NumberStyles.AllowDecimalPoint bendera .
fractional-digits Serangkaian digit mulai dari 0 hingga 9 yang menentukan bagian pecahan dari angka. Digit pecahan dapat muncul jika sstyle menyertakan NumberStyles.AllowDecimalPoint bendera.
e Karakter e atau E, yang menunjukkan bahwa s dapat mewakili angka menggunakan notasi eksponensial. Parameter s dapat mewakili angka dalam notasi eksponensial jika gaya menyertakan NumberStyles.AllowExponent bendera .
digit eksponensial Serangkaian digit mulai dari 0 hingga 9 yang menentukan eksponen.

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 jika berada dalam rentang Single jenis. Anggota yang tersisa System.Globalization.NumberStyles mengontrol elemen yang mungkin tetapi tidak diperlukan untuk hadir dalam string input. Tabel berikut menunjukkan bagaimana bendera individual NumberStyles memengaruhi elemen yang mungkin ada di s.

Nilai NumberStyles Elemen yang diizinkan dalam s selain digit
None Elemen integral-digits saja.
AllowDecimalPoint Elemen . dan fractional-digits .
AllowExponent Parameter s juga dapat menggunakan notasi eksponensial. Bendera ini dengan sendirinya mendukung nilai dalam bentuk integral-digit Eexponential-digits; bendera tambahan diperlukan untuk berhasil mengurai string dalam notasi eksponensial dengan elemen seperti tanda positif atau negatif dan simbol titik desimal.
AllowLeadingWhite Elemen ws di awal s.
AllowTrailingWhite Elemen ws di akhir s.
AllowLeadingSign Elemen tanda di awal s.
AllowTrailingSign Elemen tanda di akhir s.
AllowParentheses Elemen tanda dalam bentuk tanda kurung yang menyertakan nilai numerik.
AllowThousands Elemen , .
AllowCurrencySymbol Elemen .$
Currency Semua. Parameter s tidak dapat mewakili angka heksadesimal atau angka dalam notasi eksponensial.
Float Elemen ws di awal atau akhir , standa di awal s, dan simbol . Parameter s juga dapat menggunakan notasi eksponensial.
Number Elemen ws, , signribuan pemisah (, ), dan titik desimal (.).
Any Semua gaya, kecuali s tidak dapat mewakili angka heksadesimal.

Parameter provider adalah IFormatProvider implementasi yang metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan khusus budaya. TryParse(String, NumberStyles, IFormatProvider, Single) 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 s 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 s ditafsirkan berdasarkan NumberFormatInfo objek budaya saat ini.

Jika s berada di luar rentang Single jenis data, metode melemparkan OverflowException pada .NET Framework dan .NET Core 2.2 dan versi yang lebih lama. Pada .NET Core 3.0 dan versi yang lebih baru, ia mengembalikan Single.NegativeInfinity jika s kurang dari Single.MinValue dan Single.PositiveInfinity jika s lebih besar dari Single.MaxValue.

Jika pemisah ditemui dalam s parameter selama operasi penguraian, dan mata uang atau desimal angka yang berlaku dan pemisah grup sama, operasi penguraian mengasumsikan bahwa pemisah adalah pemisah desimal daripada pemisah grup. Untuk informasi selengkapnya tentang pemisah, lihat CurrencyDecimalSeparator, , NumberDecimalSeparatorCurrencyGroupSeparator, dan NumberGroupSeparator.

Lihat juga

Berlaku untuk