Decimal.TryParse 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 ke Decimal setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
Overload
TryParse(ReadOnlySpan<Byte>, Decimal) |
Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke setara desimal yang ditandatangani. |
TryParse(ReadOnlySpan<Char>, Decimal) |
Mengonversi representasi rentang angka ke Decimal setara menggunakan format khusus budaya. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(String, Decimal) |
Mengonversi representasi string dari angka ke Decimal setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal) |
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal) |
Mencoba mengurai rentang karakter menjadi nilai. |
TryParse(String, IFormatProvider, Decimal) |
Mencoba mengurai string ke dalam nilai. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal) |
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal) |
Mengonversi representasi rentang angka ke Decimal setara menggunakan gaya yang ditentukan dan format khusus budaya. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(String, NumberStyles, IFormatProvider, Decimal) |
Mengonversi representasi string angka ke Decimal setara menggunakan gaya yang ditentukan dan format khusus budaya. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal. |
TryParse(ReadOnlySpan<Byte>, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke setara desimal yang ditandatangani.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out decimal result);
static member TryParse : ReadOnlySpan<byte> * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Decimal) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang yang berisi karakter UTF-8 yang mewakili angka yang akan dikonversi.
- result
- Decimal
Ketika metode ini kembali, berisi nilai desimal yang ditandatangani yang setara dengan angka yang terkandung dalam utf8Text
jika konversi berhasil, atau nol jika konversi gagal. 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>, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
Mengonversi representasi rentang angka ke Decimal setara menggunakan format khusus budaya. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (ReadOnlySpan<char> s, out decimal result);
static member TryParse : ReadOnlySpan<char> * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Decimal) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili angka yang akan dikonversi.
- result
- Decimal
Ketika metode ini kembali, berisi angka Decimal yang setara dengan nilai numerik yang terkandung dalam s
, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika parameter s
null
atau Empty atau mewakili angka yang kurang dari Desimal.MinValue atau lebih besar dari Desimal.MaxValue. Parameter ini diteruskan uinisialisasi; nilai apa pun yang awalnya disediakan dalam result
ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
Berlaku untuk
TryParse(String, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
Mengonversi representasi string dari angka ke Decimal setara. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::Decimal % result);
public static bool TryParse (string s, out decimal result);
public static bool TryParse (string? s, out decimal result);
static member TryParse : string * decimal -> bool
Public Shared Function TryParse (s As String, ByRef result As Decimal) As Boolean
Parameter
- s
- String
Representasi string dari angka yang akan dikonversi.
- result
- Decimal
Ketika metode ini kembali, berisi angka Decimal yang setara dengan nilai numerik yang terkandung dalam s
, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika parameter s
null
atau Empty, bukan angka dalam format yang valid, atau mewakili angka yang kurang dari Desimal.MinValue atau lebih besar dari Desimal.MaxValue. Parameter ini diteruskan uinisialisasi; nilai apa pun yang awalnya disediakan dalam result
ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
Contoh
Contoh berikut menggunakan metode Decimal.TryParse(String, Decimal) untuk mengonversi representasi string nilai numerik menjadi nilai Decimal. Ini mengasumsikan bahwa en-US adalah budaya saat ini.
string value;
decimal number;
// Parse a floating-point value with a thousands separator.
value = "1,643.57";
if (Decimal.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 (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// Parse value in exponential notation.
value = "-1.643e6";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// Parse a negative integer value.
value = "-1689346178821";
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
// The example displays the following output to the console:
// 1643.57
// Unable to parse '$1,643.57'.
// Unable to parse '-1.643e6'.
// -1689346178821
// Parse a floating-point value with a thousands separator.
let value = "1,643.57"
match Decimal.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 Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// Parse value in exponential notation.
let value = "-1.643e6"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// Parse a negative integer value.
let value = "-1689346178821"
match Decimal.TryParse value with
| true, number ->
printfn $"{number}"
| _ ->
printfn $"Unable to parse '{value}'."
// The example displays the following output to the console:
// 1643.57
// Unable to parse '$1,643.57'.
// Unable to parse '-1.643e6'.
// -1689346178821
Dim value As String
Dim number As Decimal
' Parse a floating-point value with a thousands separator.
value = "1,643.57"
If Decimal.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 Decimal.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 Decimal.TryParse(value, number)
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' Parse a negative integer value.
value = "-1689346178821"
If Decimal.TryParse(value, number)
Console.WriteLine(number)
Else
Console.WriteLine("Unable to parse '{0}'.", value)
End If
' The example displays the following output to the console:
' 1643.57
' Unable to parse '$1,643.57'.
' Unable to parse '-1.643e6'.
' -1689346178821
Keterangan
Kelebihan beban ini berbeda dari metode Decimal.Parse(String) 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 menguji FormatException jika s
tidak valid dan tidak dapat berhasil diurai.
Parameter s
berisi sejumlah formulir:
[ws] [tanda tangan] [digits,]digits[.fractional-digits][ws]
Elemen dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.
Elemen | Deskripsi |
---|---|
ws | Spasi kosong opsional. |
tanda tangan |
Tanda opsional. |
digit | Urutan digit mulai dari 0 hingga 9. |
, | Simbol pemisah ribuan khusus budaya. |
. | Simbol titik desimal khusus budaya. |
digit pecahan | Urutan digit mulai dari 0 hingga 9. |
Parameter s
ditafsirkan menggunakan gaya NumberStyles.Number. Ini berarti bahwa ruang kosong dan ribuan pemisah diizinkan tetapi simbol mata uang tidak. Untuk secara eksplisit menentukan elemen (seperti simbol mata uang, ribuan pemisah, dan spasi putih) yang dapat ada di s
, gunakan metode Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) kelebihan beban.
Parameter s
diurai menggunakan informasi pemformatan dalam objek NumberFormatInfo yang diinisialisasi untuk budaya sistem saat ini. Untuk informasi selengkapnya, lihat CurrentInfo. Untuk mengurai string menggunakan informasi pemformatan dari beberapa budaya tertentu lainnya, gunakan metode Decimal.TryParse(String, NumberStyles, IFormatProvider, Decimal) kelebihan beban.
Jika perlu, nilai s
dibulatkan menggunakan pembulatan ke terdekat.
Objek Decimal memiliki 29 digit presisi. Jika s
mewakili angka yang memiliki lebih dari 29 digit, tetapi memiliki bagian pecahan dan berada dalam rentang MaxValue dan MinValue, angka dibulatkan, tidak dipotong, hingga 29 digit menggunakan pembulatan ke terdekat.
Jika selama operasi penguraian, pemisah ditemui dalam parameter s
, dan pemisah mata uang atau 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, NumberDecimalSeparator, CurrencyGroupSeparator, dan NumberGroupSeparator.
Lihat juga
Berlaku untuk
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
Mencoba mengurai rentang karakter UTF-8 ke dalam nilai.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IUtf8SpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang karakter UTF-8 untuk diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text
.
- result
- Decimal
Saat dikembalikan, berisi hasil dari penguraian utf8Text
yang berhasil atau nilai yang tidak terdefinisi pada kegagalan.
Mengembalikan
true
jika utf8Text
berhasil diurai; jika tidak, false
.
Berlaku untuk
TryParse(ReadOnlySpan<Char>, IFormatProvider, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
Mencoba mengurai rentang karakter menjadi nilai.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = ISpanParsable<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang karakter untuk diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
- result
- Decimal
Ketika metode ini kembali, berisi hasil penguraian yang berhasil s
, atau nilai yang tidak ditentukan pada kegagalan.
Mengembalikan
true
jika s
berhasil diurai; jika tidak, false
.
Berlaku untuk
TryParse(String, IFormatProvider, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
Mencoba mengurai string ke dalam nilai.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = IParsable<System::Decimal>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out decimal result);
static member TryParse : string * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- s
- String
String yang akan diurai.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang s
.
- result
- Decimal
Ketika metode ini kembali, berisi hasil dari penguraian s
yang berhasil atau nilai yang tidak terdefinisi pada kegagalan.
Mengembalikan
true
jika s
berhasil diurai; jika tidak, false
.
Berlaku untuk
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.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] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Rentang karakter UTF-8 untuk diurai.
- style
- NumberStyles
Kombinasi bitwise dari gaya angka yang dapat ada di utf8Text
.
- provider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text
.
- result
- Decimal
Saat dikembalikan, berisi hasil dari penguraian utf8Text
yang berhasil atau nilai yang tidak terdefinisi pada kegagalan.
Mengembalikan
true
jika utf8Text
berhasil diurai; jika tidak, false
.
Berlaku untuk
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
Mengonversi representasi rentang angka ke Decimal setara menggunakan gaya yang ditentukan dan format khusus budaya. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili angka yang akan dikonversi.
- style
- NumberStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format s
yang diizinkan. Nilai umum yang akan ditentukan adalah Number.
- provider
- IFormatProvider
Objek yang memasok informasi penguraian khusus budaya tentang s
.
- result
- Decimal
Ketika metode ini kembali, berisi angka Decimal yang setara dengan nilai numerik yang terkandung dalam s
, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika parameter s
null
atau Empty, bukan angka dalam format yang sesuai dengan style
, atau mewakili angka yang kurang dari Desimal.MinValue atau lebih besar dari Desimal.MaxValue. Parameter ini diteruskan uinisialisasi; nilai apa pun yang awalnya disediakan dalam result
ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
Berlaku untuk
TryParse(String, NumberStyles, IFormatProvider, Decimal)
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
- Sumber:
- Decimal.cs
Mengonversi representasi string angka ke Decimal setara menggunakan gaya yang ditentukan dan format khusus budaya. Nilai pengembalian menunjukkan apakah konversi berhasil atau gagal.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Decimal % result) = System::Numerics::INumberBase<System::Decimal>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out decimal result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out decimal result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * decimal -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Decimal) As Boolean
Parameter
- s
- String
Representasi string dari angka yang akan dikonversi.
- style
- NumberStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format s
yang diizinkan. Nilai umum yang akan ditentukan adalah Number.
- provider
- IFormatProvider
Objek yang memasok informasi penguraian khusus budaya tentang s
.
- result
- Decimal
Ketika metode ini kembali, berisi angka Decimal yang setara dengan nilai numerik yang terkandung dalam s
, jika konversi berhasil, atau nol jika konversi gagal. Konversi gagal jika parameter s
null
atau Empty, bukan angka dalam format yang sesuai dengan style
, atau mewakili angka yang kurang dari Desimal.MinValue atau lebih besar dari Desimal.MaxValue. Parameter ini diteruskan uinisialisasi; nilai apa pun yang awalnya disediakan dalam result
ditimpa.
Mengembalikan
true
jika s
berhasil dikonversi; jika tidak, false
.
Pengecualian
Contoh
Contoh berikut menunjukkan penggunaan metode TryParse(String, NumberStyles, IFormatProvider, Decimal) untuk mengurai representasi string dari angka yang memiliki gaya tertentu dan diformat menggunakan konvensi budaya tertentu.
string value;
NumberStyles style;
CultureInfo culture;
decimal number;
// Parse currency value using en-GB culture.
value = "£1,097.63";
style = NumberStyles.Number | NumberStyles.AllowCurrencySymbol;
culture = CultureInfo.CreateSpecificCulture("en-GB");
if (Decimal.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Converted '£1,097.63' to 1097.63.
value = "1345,978";
style = NumberStyles.AllowDecimalPoint;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
if (Decimal.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Converted '1345,978' to 1345.978.
value = "1.345,978";
style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
culture = CultureInfo.CreateSpecificCulture("es-ES");
if (Decimal.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Converted '1.345,978' to 1345.978.
value = "1 345,978";
if (Decimal.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Unable to convert '1 345,978'.
// Parse currency value using en-GB culture.
let value = "£1,097.63"
let style = NumberStyles.Number ||| NumberStyles.AllowCurrencySymbol
let culture = CultureInfo.CreateSpecificCulture "en-GB"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '£1,097.63' to 1097.63.
let value = "1345,978"
let style = NumberStyles.AllowDecimalPoint
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '1345,978' to 1345.978.
let value = "1.345,978"
let style = NumberStyles.AllowDecimalPoint ||| NumberStyles.AllowThousands
let culture = CultureInfo.CreateSpecificCulture "es-ES"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Converted '1.345,978' to 1345.978.
let value = "1 345,978"
match Decimal.TryParse(value, style, culture) with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"Unable to convert '{value}'."
// Displays:
// Unable to convert '1 345,978'.
Dim value As String
Dim style As NumberStyles
Dim culture As CultureInfo
Dim number As Decimal
' Parse currency value using en-GB culture.
value = "£1,097.63"
style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
culture = CultureInfo.CreateSpecificCulture("en-GB")
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Converted '£1,097.63' to 1097.63.
value = "1345,978"
style = NumberStyles.AllowDecimalPoint
culture = CultureInfo.CreateSpecificCulture("fr-FR")
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Converted '1345,978' to 1345.978.
value = "1.345,978"
style = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands
culture = CultureInfo.CreateSpecificCulture("es-ES")
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Converted '1.345,978' to 1345.978.
value = "1 345,978"
If Decimal.TryParse(value, style, culture, number) Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Unable to convert '{0}'.", value)
End If
' Displays:
' Unable to convert '1 345,978'.
Keterangan
Kelebihan beban ini berbeda dari metode Decimal.Parse(String, NumberStyles, IFormatProvider) 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 menguji FormatException jika s
tidak valid dan tidak dapat berhasil diurai.
Parameter style
menentukan format parameter s
yang diizinkan agar operasi penguraian berhasil. Ini harus merupakan kombinasi bendera bit dari enumerasi NumberStyles. Anggota NumberStyles berikut ini tidak didukung:
Bergantung pada nilai gaya, parameter s
dapat mencakup elemen berikut:
[ws] [$] [tanda tangan] [digits,]digits[.fractional-digits][e[sign]digits][ws]
Elemen dalam tanda kurung siku ([ dan ]) bersifat opsional. Tabel berikut ini menjelaskan setiap elemen.
Elemen | Deskripsi |
---|---|
ws | Spasi kosong opsional. Spasi kosong dapat muncul di awal s jika style menyertakan bendera NumberStyles.AllowLeadingWhite. Ini dapat muncul di akhir s jika style menyertakan bendera NumberStyles.AllowTrailingWhite. |
$ | Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh properti NumberFormatInfo.CurrencyNegativePattern atau NumberFormatInfo.CurrencyPositivePattern objek NumberFormatInfo yang dikembalikan oleh metode IFormatProvider.GetFormat parameter provider . Simbol mata uang dapat muncul dalam s jika style menyertakan bendera NumberStyles.AllowCurrencySymbol. |
tanda tangan |
Tanda opsional. |
digit | Urutan digit mulai dari 0 hingga 9. |
. | Simbol titik desimal khusus budaya. |
digit pecahan | Urutan digit mulai dari 0 hingga 9. |
Parameter style
menentukan format parameter s
yang diizinkan, dan dapat berupa satu atau beberapa konstanta enumerasi NumberStyles dikombinasikan menggunakan operasi BITWISE OR. Jika style
null, s
ditafsirkan menggunakan gaya NumberStyles.Number.
Parameter provider
adalah implementasi IFormatProvider seperti objek NumberFormatInfo atau CultureInfo. Parameter provider
memasok informasi khusus budaya yang digunakan dalam penguraian. Jika provider
null
, budaya utas saat ini digunakan.
Objek Decimal memiliki 29 digit presisi. Jika s
mewakili angka yang memiliki lebih dari 29 digit, tetapi memiliki bagian pecahan dan berada dalam rentang MaxValue dan MinValue, angka dibulatkan, tidak dipotong, hingga 29 digit menggunakan pembulatan ke terdekat.
Jika pemisah ditemui dalam parameter s
selama operasi penguraian, dan pemisah mata uang atau 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, NumberDecimalSeparator, CurrencyGroupSeparator, dan NumberGroupSeparator.