此方法用於使用指定的區域性特定格式信息將數字的指定字符串表示形式轉換為等效的十進製數字。
用法:
public static decimal ToDecimal (string value, IFormatProvider provider);
參數:
- value:它是一個包含要轉換的數字的字符串。
- provider:它是提供區域性特定格式信息的對象。
返回值:此方法返回一個十進製數字,該數字等於value中的數字;如果value為null,則返回0(零)。
異常:
- FormatException:如果該值不是有效格式的數字。
- OverflowException:如果值表示小於MinValue或大於MaxValue的數字。
以下示例程序旨在說明Convert.ToDecimal(String,IFormatProvider)方法的用法:
範例1:
// C# program to demonstrate the
// Convert.ToDecimal() Method
using System;
using System.Globalization;
class GFG {
// Main Method
public static void Main()
{
try {
// creating object of CultureInfo
CultureInfo cultures = new CultureInfo("en-US");
// declaring and intializing String array
string[] values = {"123456789", "12345.6789",
"123,456,789.0123"};
// calling get() Method
Console.WriteLine("Converted decimal value "+
"of specified strings:");
for (int j = 0; j < values.Length; j++) {
get(values[j], cultures);
}
}
catch (FormatException e) {
Console.WriteLine("\n");
Console.Write("Exception Thrown:");
Console.Write("{0}", e.GetType(), e.Message);
}
catch (OverflowException e) {
Console.WriteLine("\n");
Console.Write("Exception Thrown:");
Console.Write("{0}", e.GetType(), e.Message);
}
}
// Defining get() method
public static void get(string s,
CultureInfo cultures)
{
// converting string to specified char
decimal val = Convert.ToDecimal(s, cultures);
// display the converted char value
Console.Write(" {0}, ", val);
}
}
輸出:
Converted decimal value of specified strings: 123456789, 12345.6789, 123456789.0123,
範例2:對於FormatException
// C# program to demonstrate the
// Convert.ToDecimal() Method
using System;
using System.Globalization;
class GFG {
// Main Method
public static void Main()
{
try {
// creating object of CultureInfo
CultureInfo cultures = new CultureInfo("en-US");
// declaring and intializing String array
string[] values = {"123456789", "12345.6789",
"123,456,789.0123"};
// calling get() Method
Console.WriteLine("Converted decimal value"+
" of specified strings:");
for (int j = 0; j < values.Length; j++) {
get(values[j], cultures);
}
Console.WriteLine("\n");
string s = "123 456, 789";
Console.WriteLine("format of s is invalid ");
// converting string to specified char
decimal val = Convert.ToDecimal(s, cultures);
// display the converted char value
Console.Write(" {0}, ", val);
}
catch (FormatException e) {
Console.Write("Exception Thrown:");
Console.Write("{0}", e.GetType(), e.Message);
}
catch (OverflowException e) {
Console.Write("Exception Thrown:");
Console.Write("{0}", e.GetType(), e.Message);
}
}
// Defining get() method
public static void get(string s,
CultureInfo cultures)
{
// converting string to
// specified decimal value
decimal val = Convert.ToDecimal(s, cultures);
// display the converted decimal value
Console.Write(" {0}, ", val);
}
}
輸出:
Converted decimal value of specified strings: 123456789, 12345.6789, 123456789.0123, format of s is invalid Exception Thrown:System.FormatException
範例3:對於OverflowException
// C# program to demonstrate the
// Convert.ToDecimal() Method
using System;
using System.Globalization;
class GFG {
// Main Method
public static void Main()
{
try {
// creating object of CultureInfo
CultureInfo cultures = new CultureInfo("en-US");
// declaring and intializing String array
string[] values = {"123456789", "12345.6789",
"123,456,789.0123"};
// calling get() Method
Console.WriteLine("Converted decimal value "+
"of specified strings:");
for (int j = 0; j < values.Length; j++) {
get(values[j], cultures);
}
Console.WriteLine("\n");
string s = "-7922816251426433759354395033500000";
Console.WriteLine("s is less than the MinValue");
// converting string to specified char
decimal val = Convert.ToDecimal(s, cultures);
// display the converted char value
Console.Write(" {0}, ", val);
}
catch (FormatException e) {
Console.Write("Exception Thrown:");
Console.Write("{0}", e.GetType(), e.Message);
}
catch (OverflowException e) {
Console.Write("Exception Thrown:");
Console.Write("{0}", e.GetType(), e.Message);
}
}
// Defining get() method
public static void get(string s,
CultureInfo cultures)
{
// converting string to
// specified decimal value
decimal val = Convert.ToDecimal(s, cultures);
// display the converted decimal value
Console.Write(" {0}, ", val);
}
}
輸出:
Converted decimal value of specified strings: 123456789, 12345.6789, 123456789.0123, s is less than the MinValue Exception Thrown:System.OverflowException
參考:
相關用法
- C# Boolean.ToString(IFormatProvider)用法及代碼示例
- C# Convert.ToInt32(String, IFormatProvider)用法及代碼示例
- C# Convert.ToUInt16(String, IFormatProvider)用法及代碼示例
- C# Convert.ToSByte(String, IFormatProvider)用法及代碼示例
- C# Convert.ToInt64(String, IFormatProvider)用法及代碼示例
- C# Convert.ToString(String, IFormatProvider)用法及代碼示例
- C# Convert.ToSingle(String, IFormatProvider)用法及代碼示例
- C# Convert.ToInt16(String, IFormatProvider)用法及代碼示例
- C# Convert.ToUInt32(String, IFormatProvider)用法及代碼示例
- C# Convert.ToDouble(String, IFormatProvider)用法及代碼示例
- C# Convert.ToDateTime(String, IFormatProvider)用法及代碼示例
- C# Convert.ToUInt64(String, IFormatProvider)用法及代碼示例
- C# Convert.ToBoolean(String, IFormatProvider)用法及代碼示例
- C# Convert.ToByte(String, IFormatProvider)用法及代碼示例
- C# Convert.ToChar(String, IFormatProvider)用法及代碼示例
注:本文由純淨天空篩選整理自RohitPrasad3大神的英文原創作品 C# | Convert.ToDecimal(String, IFormatProvider) Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。