Convert.ToDecimal Yöntem

Tanım

Belirtilen değeri ondalık sayıya dönüştürür.

Aşırı Yüklemeler

ToDecimal(Single)

Belirtilen tek duyarlıklı kayan nokta sayısının değerini eşdeğer ondalık sayıya dönüştürür.

ToDecimal(String)

Bir sayının belirtilen dize gösterimini eşdeğer ondalık sayıya dönüştürür.

ToDecimal(UInt16)

Belirtilen 16 bit işaretsiz tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(String, IFormatProvider)

Bir sayının belirtilen dize gösterimini, belirtilen kültüre özgü biçimlendirme bilgilerini kullanarak eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(UInt64)

Belirtilen 64 bit işaretsiz tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(Object, IFormatProvider)

Belirtilen kültüre özgü biçimlendirme bilgilerini kullanarak belirtilen nesnenin değerini eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(SByte)

Belirtilen 8 bit imzalı tamsayı değerini eşdeğer ondalık sayıya dönüştürür.

ToDecimal(UInt32)

Belirtilen 32 bit işaretsiz tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(Object)

Belirtilen nesnenin değerini eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(Int64)

Belirtilen 64 bit imzalı tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(Int32)

Belirtilen 32 bit imzalı tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(Int16)

Belirtilen 16 bit imzalı tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

ToDecimal(Double)

Belirtilen çift duyarlıklı kayan noktalı sayının değerini eşdeğer ondalık sayıya dönüştürür.

ToDecimal(Decimal)

Belirtilen ondalık sayıyı verir; gerçek dönüştürme gerçekleştirilmemesi.

ToDecimal(DateTime)

Bu yöntemin çağrılması her zaman InvalidCastExceptionoluşturur.

ToDecimal(Char)

Bu yöntemin çağrılması her zaman InvalidCastExceptionoluşturur.

ToDecimal(Byte)

Belirtilen 8 bit işaretsiz tamsayı değerini eşdeğer ondalık sayıya dönüştürür.

ToDecimal(Boolean)

Belirtilen Boole değerini eşdeğer ondalık sayıya dönüştürür.

ToDecimal(Single)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen tek duyarlıklı kayan nokta sayısının değerini eşdeğer ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (float value);

Parametreler

value
Single

Dönüştürülecek tek duyarlıklı kayan nokta sayısı.

Döndürülenler

valueeşdeğer bir ondalık sayı.

Özel durumlar

value Decimal.MaxValue büyüktür veya Decimal.MinValuedeğerinden küçüktür.

Örnekler

Aşağıdaki örnek, Single değer dizisindeki her öğeyi Decimal bir değere dönüştürmeyi dener.

C#
float[] numbers = { Single.MinValue, -3e10f, -1093.54f, 0f, 1e-03f,
                    1034.23f, Single.MaxValue };
decimal result;

foreach (float number in numbers)
{
   try {
      result = Convert.ToDecimal(number);
      Console.WriteLine("Converted the Single value {0} to {1}.", number, result);
   }
   catch (OverflowException) {
      Console.WriteLine("{0} is out of range of the Decimal type.", number);
   }
}
// The example displays the following output:
//       -3.402823E+38 is out of range of the Decimal type.
//       Converted the Single value -3E+10 to -30000000000.
//       Converted the Single value -1093.54 to -1093.54.
//       Converted the Single value 0 to 0.
//       Converted the Single value 0.001 to 0.001.
//       Converted the Single value 1034.23 to 1034.23.
//       3.402823E+38 is out of range of the Decimal type.

Açıklamalar

Bu yöntem tarafından döndürülen Decimal değeri en fazla yedi anlamlı basamak içerir. value parametresi yediden fazla anlamlı basamak içeriyorsa, en yakına yuvarlama kullanılarak yuvarlanmış olur. Aşağıdaki örnekte, ToDecimal(Single) yönteminin yedi önemli basamağı olan bir Decimal değeri döndürmek için en yakına yuvarlama yöntemini nasıl kullandığı gösterilmektedir.

C#
Console.WriteLine(Convert.ToDecimal(1234567500.12F));  // Displays 1234568000
Console.WriteLine(Convert.ToDecimal(1234568500.12F));  // Displays 1234568000

Console.WriteLine(Convert.ToDecimal(10.980365F));      // Displays 10.98036
Console.WriteLine(Convert.ToDecimal(10.980355F));      // Displays 10.98036

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(String)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Bir sayının belirtilen dize gösterimini eşdeğer ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (string value);
C#
public static decimal ToDecimal (string? value);

Parametreler

value
String

Dönüştürülecek bir sayı içeren dize.

Döndürülenler

valueiçindeki sayıya eşdeğer bir ondalık sayı veya valuenullise 0 (sıfır) .

Özel durumlar

value geçerli biçimde bir sayı değildir.

value Decimal.MinValue veya Decimal.MaxValue'den büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki örnekte ToDecimalkullanımı gösterilmektedir. Bir String bir Decimaldönüştürmeyi dener ve dönüştürme sırasında ortaya çıkabilecek olası özel durumları oluşturur.

C#
public void ConvertStringDecimal(string stringVal) {
    decimal decimalVal = 0;
    
    try {
        decimalVal = System.Convert.ToDecimal(stringVal);
        System.Console.WriteLine(
            "The string as a decimal is {0}.", decimalVal);
    }
    catch (System.OverflowException){
        System.Console.WriteLine(
            "The conversion from string to decimal overflowed.");
    }
    catch (System.FormatException) {
        System.Console.WriteLine(
            "The string is not formatted as a decimal.");
    }
    catch (System.ArgumentNullException) {
        System.Console.WriteLine(
            "The string is null.");
    }

    // Decimal to string conversion will not overflow.
    stringVal = System.Convert.ToString(decimalVal);
    System.Console.WriteLine(
        "The decimal as a string is {0}.", stringVal);
}

Açıklamalar

ToDecimal(String) yönteminin kullanılması, valueDecimal.Parse(String) yöntemine geçirmekle eşdeğerdir. value, geçerli kültürün biçimlendirme kuralları kullanılarak yorumlanır.

Dönüştürme başarısız olursa bir özel durumu işlemeyi tercih ederseniz, bunun yerine Decimal.TryParse yöntemini çağırabilirsiniz. Dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösteren bir Boolean değeri döndürür.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(UInt16)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen 16 bit işaretsiz tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

C#
[System.CLSCompliant(false)]
public static decimal ToDecimal (ushort value);

Parametreler

value
UInt16

Dönüştürülecek 16 bit işaretsiz tamsayı.

Döndürülenler

valueeşdeğer ondalık sayıdır.

Öznitelikler

Örnekler

Aşağıdaki örnek, 16 bit işaretsiz tamsayılardan oluşan bir diziyi Decimal değerlere dönüştürür.

C#
ushort[] numbers = { UInt16.MinValue, 121, 12345, UInt16.MaxValue };
decimal result;

foreach (ushort number in numbers)
{
   result = Convert.ToDecimal(number);
   Console.WriteLine("Converted the UInt16 value {0} to {1}.",
                     number, result);
}
// The example displays the following output:
//       Converted the UInt16 value 0 to 0.
//       Converted the UInt16 value 121 to 121.
//       Converted the UInt16 value 12345 to 12345.
//       Converted the UInt16 value 65535 to 65535.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(String, IFormatProvider)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Bir sayının belirtilen dize gösterimini, belirtilen kültüre özgü biçimlendirme bilgilerini kullanarak eşdeğer bir ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (string value, IFormatProvider provider);
C#
public static decimal ToDecimal (string? value, IFormatProvider? provider);

Parametreler

value
String

Dönüştürülecek bir sayı içeren dize.

provider
IFormatProvider

Kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

valueiçindeki sayıya eşdeğer bir ondalık sayı veya valuenullise 0 (sıfır) .

Özel durumlar

value geçerli biçimde bir sayı değildir.

value Decimal.MinValue veya Decimal.MaxValue'den büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki örnek, iki farklı kültürü temsil eden NumberFormatInfo nesneleri kullanarak bir dizi dizeyi Decimal değerlere dönüştürmeyi dener.

C#
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values = { "123456789", "12345.6789", "12 345,6789",
                          "123,456.789", "123 456,789", "123,456,789.0123",
                          "123 456 789,0123" };
      CultureInfo[] cultures = { new CultureInfo("en-US"),
                                 new CultureInfo("fr-FR") };

      foreach (CultureInfo culture in cultures)
      {
         Console.WriteLine("String -> Decimal Conversion Using the {0} Culture",
                           culture.Name);
         foreach (string value in values)
         {
            Console.Write("{0,20}  ->  ", value);
            try {
               Console.WriteLine(Convert.ToDecimal(value, culture));
            }
            catch (FormatException) {
               Console.WriteLine("FormatException");
            }
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//       String -> Decimal Conversion Using the en-US Culture
//                  123456789  ->  123456789
//                 12345.6789  ->  12345.6789
//                12 345,6789  ->  FormatException
//                123,456.789  ->  123456.789
//                123 456,789  ->  FormatException
//           123,456,789.0123  ->  123456789.0123
//           123 456 789,0123  ->  FormatException
//
//       String -> Decimal Conversion Using the fr-FR Culture
//                  123456789  ->  123456789
//                 12345.6789  ->  FormatException
//                12 345,6789  ->  12345.6789
//                123,456.789  ->  FormatException
//                123 456,789  ->  123456.789
//           123,456,789.0123  ->  FormatException
//           123 456 789,0123  ->  123456789.0123

Açıklamalar

Dönüş değeri, valueüzerinde Decimal.Parse yöntemini çağırmanın sonucudur.

provider, NumberFormatInfo nesnesi edinen IFormatProvider bir örnektir. NumberFormatInfo nesnesi, valuebiçimi hakkında kültüre özgü bilgiler sağlar. provider nullise, geçerli kültürün NumberFormatInfo kullanılır.

Dönüştürme başarısız olursa bir özel durumu işlemeyi tercih ederseniz, bunun yerine Decimal.TryParse yöntemini çağırabilirsiniz. Dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösteren bir Boolean değeri döndürür.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(UInt64)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen 64 bit işaretsiz tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

C#
[System.CLSCompliant(false)]
public static decimal ToDecimal (ulong value);

Parametreler

value
UInt64

Dönüştürülecek 64 bit işaretsiz tamsayı.

Döndürülenler

valueeşdeğer bir ondalık sayı.

Öznitelikler

Örnekler

Aşağıdaki örnek, işaretsiz uzun tamsayı dizisini Decimal değerlere dönüştürür.

C#
ulong[] numbers = { UInt64.MinValue, 121, 12345, UInt64.MaxValue };
decimal result;

foreach (ulong number in numbers)
{
   result = Convert.ToDecimal(number);
   Console.WriteLine("Converted the UInt64 value {0} to {1}.",
                     number, result);
}
// The example displays the following output:
//    Converted the UInt64 value 0 to 0.
//    Converted the UInt64 value 121 to 121.
//    Converted the UInt64 value 12345 to 12345.
//    Converted the UInt64 value 18446744073709551615 to 18446744073709551615.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(Object, IFormatProvider)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen kültüre özgü biçimlendirme bilgilerini kullanarak belirtilen nesnenin değerini eşdeğer bir ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (object value, IFormatProvider provider);
C#
public static decimal ToDecimal (object? value, IFormatProvider? provider);

Parametreler

value
Object

IConvertible arabirimini uygulayan bir nesne.

provider
IFormatProvider

Kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

valueeşdeğer bir ondalık sayı veya valuenullise 0 (sıfır).

Özel durumlar

value, Decimal türü için uygun bir biçimde değil.

value IConvertible arabirimini uygulamaz.

-veya-

Dönüştürme desteklenmiyor.

value Decimal.MinValue veya Decimal.MaxValue'den büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki örnek, IConvertible arabirimini uygulayan bir Temperature sınıfını tanımlar.

C#
using System;
using System.Globalization;

public class Temperature : IConvertible
{
   private decimal m_Temp;

   public Temperature(decimal temperature)
   {
      this.m_Temp = temperature;
   }

   public decimal Celsius
   {
      get { return this.m_Temp; }
   }

   public decimal Kelvin
   {
      get { return this.m_Temp + 273.15m; }
   }

   public decimal Fahrenheit
   {
      get { return Math.Round((decimal) (this.m_Temp * 9 / 5 + 32), 2); }
   }

   public override string ToString()
   {
      return m_Temp.ToString("N2") + " °C";
   }

   // IConvertible implementations.
   public TypeCode GetTypeCode()
   {
      return TypeCode.Object;
   }

   public bool ToBoolean(IFormatProvider provider)
   {
      if (m_Temp == 0)
         return false;
      else
         return true;
   }

   public byte ToByte(IFormatProvider provider)
   {
      if (m_Temp < Byte.MinValue || m_Temp > Byte.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the Byte type.",
                                                   this.m_Temp));
      else
         return Decimal.ToByte(this.m_Temp);
   }

   public char ToChar(IFormatProvider provider)
   {
      throw new InvalidCastException("Temperature to Char conversion is not supported.");
   }

   public DateTime ToDateTime(IFormatProvider provider)
   {
      throw new InvalidCastException("Temperature to DateTime conversion is not supported.");
   }

   public decimal ToDecimal(IFormatProvider provider)
   {
      return this.m_Temp;
   }

   public double ToDouble(IFormatProvider provider)
   {
      return Decimal.ToDouble(this.m_Temp);
   }

   public short ToInt16(IFormatProvider provider)
   {
      if (this.m_Temp < Int16.MinValue || this.m_Temp > Int16.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the Int16 type.",
                                                   this.m_Temp));
      else
         return Decimal.ToInt16(this.m_Temp);
   }

   public int ToInt32(IFormatProvider provider)
      {
      if (this.m_Temp < Int32.MinValue || this.m_Temp > Int32.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the Int32 type.",
                                                   this.m_Temp));
      else
         return Decimal.ToInt32(this.m_Temp);
   }

   public long ToInt64(IFormatProvider provider)
   {
      if (this.m_Temp < Int64.MinValue || this.m_Temp > Int64.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the Int64 type.",
                                                   this.m_Temp));
      else
         return Decimal.ToInt64(this.m_Temp);
   }

   public sbyte ToSByte(IFormatProvider provider)
   {
      if (this.m_Temp < SByte.MinValue || this.m_Temp > SByte.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the SByte type.",
                                                   this.m_Temp));
      else
         return Decimal.ToSByte(this.m_Temp);
   }

   public float ToSingle(IFormatProvider provider)
   {
      return Decimal.ToSingle(this.m_Temp);
   }

   public string ToString(IFormatProvider provider)
   {
      return m_Temp.ToString("N2", provider) + " °C";
   }

   public object ToType(Type conversionType, IFormatProvider provider)
   {
      switch (Type.GetTypeCode(conversionType))
      {
         case TypeCode.Boolean:
            return this.ToBoolean(null);
         case TypeCode.Byte:
            return this.ToByte(null);
         case TypeCode.Char:
            return this.ToChar(null);
         case TypeCode.DateTime:
            return this.ToDateTime(null);
         case TypeCode.Decimal:
            return this.ToDecimal(null);
         case TypeCode.Double:
            return this.ToDouble(null);
         case TypeCode.Int16:
            return this.ToInt16(null);
         case TypeCode.Int32:
            return this.ToInt32(null);
         case TypeCode.Int64:
            return this.ToInt64(null);
         case TypeCode.Object:
            if (typeof(Temperature).Equals(conversionType))
               return this;
            else
               throw new InvalidCastException(String.Format("Conversion to a {0} is not supported.",
                                                            conversionType.Name));
         case TypeCode.SByte:
            return this.ToSByte(null);
         case TypeCode.Single:
            return this.ToSingle(null);
         case TypeCode.String:
            return this.ToString(provider);
         case TypeCode.UInt16:
            return this.ToUInt16(null);
         case TypeCode.UInt32:
            return this.ToUInt32(null);
         case TypeCode.UInt64:
            return this.ToUInt64(null);
         default:
            throw new InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name));
      }
   }

   public ushort ToUInt16(IFormatProvider provider)
   {
      if (this.m_Temp < UInt16.MinValue || this.m_Temp > UInt16.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the UInt16 type.",
                                                   this.m_Temp));
      else
         return Decimal.ToUInt16(this.m_Temp);
   }

   public uint ToUInt32(IFormatProvider provider)
   {
      if (this.m_Temp < UInt32.MinValue || this.m_Temp > UInt32.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the UInt32 type.",
                                                   this.m_Temp));
      else
         return Decimal.ToUInt32(this.m_Temp);
   }

   public ulong ToUInt64(IFormatProvider provider)
   {
      if (this.m_Temp < UInt64.MinValue || this.m_Temp > UInt64.MaxValue)
         throw new OverflowException(String.Format("{0} is out of range of the UInt64 type.",
                                                   this.m_Temp));
      else
         return Decimal.ToUInt64(this.m_Temp);
   }
}

Aşağıdaki örnekte, bir Temperature nesnesi ToDecimal(Object, IFormatProvider) yöntemine parametre olarak geçirildiğinde, dönüştürmeyi gerçekleştirmek için Temperature sınıfının IConvertible.ToDecimal uygulaması çağrılır.

C#
public class Example
{
   public static void Main()
   {
      Temperature cold = new Temperature(-40);
      Temperature freezing = new Temperature(0);
      Temperature boiling = new Temperature(100);

      Console.WriteLine(Convert.ToDecimal(cold, null));
      Console.WriteLine(Convert.ToDecimal(freezing, null));
      Console.WriteLine(Convert.ToDecimal(boiling, null));
   }
}
// The example dosplays the following output:
//       -40
//       0
//       100

Açıklamalar

Dönüş değeri, temel alınan valuetürünün IConvertible.ToDecimal yöntemini çağırmanın sonucudur.

provider, kullanıcının valueiçeriği hakkında kültüre özgü dönüştürme bilgilerini belirtmesini sağlar. Temel türler provideryoksayar; ancak, valueIConvertible arabirimini uygulayan kullanıcı tanımlı bir türse parametresi kullanılabilir.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(SByte)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen 8 bit imzalı tamsayı değerini eşdeğer ondalık sayıya dönüştürür.

C#
[System.CLSCompliant(false)]
public static decimal ToDecimal (sbyte value);

Parametreler

value
SByte

Dönüştürülecek 8 bit işaretli tamsayı.

Döndürülenler

valueeşdeğer bir ondalık sayı.

Öznitelikler

Örnekler

Aşağıdaki örnek, imzalı bayt dizisindeki her öğeyi bir Decimal değerine dönüştürür.

C#
sbyte[] numbers = { SByte.MinValue, -23, 0, 17, SByte.MaxValue };
decimal result;

foreach (sbyte number in numbers)
{
   result = Convert.ToDecimal(number);
   Console.WriteLine("Converted the SByte value {0} to {1}.", number, result);
}
//       Converted the SByte value -128 to -128.
//       Converted the SByte value -23 to -23.
//       Converted the SByte value 0 to 0.
//       Converted the SByte value 17 to 17.
//       Converted the SByte value 127 to 127.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(UInt32)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen 32 bit işaretsiz tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

C#
[System.CLSCompliant(false)]
public static decimal ToDecimal (uint value);

Parametreler

value
UInt32

Dönüştürülecek 32 bit işaretsiz tamsayı.

Döndürülenler

valueeşdeğer bir ondalık sayı.

Öznitelikler

Örnekler

Aşağıdaki örnek, imzalanmamış tamsayı dizisini Decimal değerlere dönüştürür.

C#
uint[] numbers = { UInt32.MinValue, 121, 12345, UInt32.MaxValue };
decimal result;

foreach (uint number in numbers)
{
   result = Convert.ToDecimal(number);
   Console.WriteLine("Converted the UInt32 value {0} to {1}.",
                     number, result);
}
// The example displays the following output:
//       Converted the UInt32 value 0 to 0.
//       Converted the UInt32 value 121 to 121.
//       Converted the UInt32 value 12345 to 12345.
//       Converted the UInt32 value 4294967295 to 4294967295.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(Object)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen nesnenin değerini eşdeğer bir ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (object value);
C#
public static decimal ToDecimal (object? value);

Parametreler

value
Object

IConvertible arabirimini uygulayan bir nesne veya null.

Döndürülenler

valueeşdeğer bir ondalık sayı veya valuenullise 0 (sıfır).

Özel durumlar

value, Decimal türü için uygun bir biçimde değil.

value IConvertible arabirimini uygulamaz.

-veya-

Dönüştürme desteklenmiyor.

value Decimal.MinValue veya Decimal.MaxValue'den büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki örnek, bir nesne dizisindeki her öğeyi Decimal bir değere dönüştürmeye çalışır.

C#
object[] values = { true, 'a', 123, 1.764e32, "9.78", "1e-02",
                    1.67e03, "A100", "1,033.67", DateTime.Now,
                    Double.MaxValue };
decimal result;

foreach (object value in values)
{
   try {
      result = Convert.ToDecimal(value);
      Console.WriteLine("Converted the {0} value {1} to {2}.",
                        value.GetType().Name, value, result);
   }
   catch (OverflowException) {
      Console.WriteLine("The {0} value {1} is out of range of the Decimal type.",
                        value.GetType().Name, value);
   }
   catch (FormatException) {
      Console.WriteLine("The {0} value {1} is not recognized as a valid Decimal value.",
                        value.GetType().Name, value);
   }
   catch (InvalidCastException) {
      Console.WriteLine("Conversion of the {0} value {1} to a Decimal is not supported.",
                        value.GetType().Name, value);
   }
}
// The example displays the following output:
//    Converted the Boolean value True to 1.
//    Conversion of the Char value a to a Decimal is not supported.
//    Converted the Int32 value 123 to 123.
//    The Double value 1.764E+32 is out of range of the Decimal type.
//    Converted the String value 9.78 to 9.78.
//    The String value 1e-02 is not recognized as a valid Decimal value.
//    Converted the Double value 1670 to 1670.
//    The String value A100 is not recognized as a valid Decimal value.
//    Converted the String value 1,033.67 to 1033.67.
//    Conversion of the DateTime value 10/15/2008 05:40:42 PM to a Decimal is not supported.
//    The Double value 1.79769313486232E+308 is out of range of the Decimal type.

Açıklamalar

Dönüş değeri, temel alınan valuetürünün IConvertible.ToDecimal yöntemini çağırmanın sonucudur.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(Int64)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen 64 bit imzalı tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (long value);

Parametreler

value
Int64

Dönüştürülecek 64 bit imzalı tamsayı.

Döndürülenler

valueeşdeğer bir ondalık sayı.

Örnekler

Aşağıdaki örnek bir Int64 değerini Decimal bir değere dönüştürür.

C#
public void ConvertLongDecimal(long longVal) {

    decimal	decimalVal;
    
    // Long to decimal conversion cannot overflow.
    decimalVal = System.Convert.ToDecimal(longVal);
    System.Console.WriteLine("{0} as a decimal is {1}",
            longVal, decimalVal);

    // Decimal to long conversion can overflow.
    try {
        longVal = System.Convert.ToInt64(decimalVal);
        System.Console.WriteLine("{0} as a long is {1}",
            decimalVal, longVal);
    }
    catch (System.OverflowException) {
        System.Console.WriteLine(
            "Overflow in decimal-to-long conversion.");
    }
}

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(Int32)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen 32 bit imzalı tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (int value);

Parametreler

value
Int32

Dönüştürülecek 32 bit imzalı tamsayı.

Döndürülenler

valueeşdeğer bir ondalık sayı.

Örnekler

Aşağıdaki örnek, imzalı tamsayı dizisini Decimal değerlere dönüştürür.

C#
int[] numbers = { Int32.MinValue, -1000, 0, 1000, Int32.MaxValue };
decimal result;

foreach (int number in numbers)
{
   result = Convert.ToDecimal(number);
   Console.WriteLine("Converted the Int32 value {0} to the Decimal value {1}.",
                     number, result);
}
// The example displays the following output:
//    Converted the Int32 value -2147483648 to the Decimal value -2147483648.
//    Converted the Int32 value -1000 to the Decimal value -1000.
//    Converted the Int32 value 0 to the Decimal value 0.
//    Converted the Int32 value 1000 to the Decimal value 1000.
//    Converted the Int32 value 2147483647 to the Decimal value 2147483647.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(Int16)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen 16 bit imzalı tamsayı değerini eşdeğer bir ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (short value);

Parametreler

value
Int16

Dönüştürülecek 16 bit imzalı tamsayı.

Döndürülenler

valueeşdeğer bir ondalık sayı.

Örnekler

Aşağıdaki örnek, 16 bit imzalı tamsayılardan oluşan bir diziyi Decimal değerlere dönüştürür.

C#
short[] numbers = { Int16.MinValue, -1000, 0, 1000, Int16.MaxValue };
decimal result;

foreach (short number in numbers)
{
   result = Convert.ToDecimal(number);
   Console.WriteLine("Converted the Int16 value {0} to the Decimal value {1}.",
                     number, result);
}
// The example displays the following output:
//       Converted the Int16 value -32768 to the Decimal value -32768.
//       Converted the Int16 value -1000 to the Decimal value -1000.
//       Converted the Int16 value 0 to the Decimal value 0.
//       Converted the Int16 value 1000 to the Decimal value 1000.
//       Converted the Int16 value 32767 to the Decimal value 32767.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(Double)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen çift duyarlıklı kayan noktalı sayının değerini eşdeğer ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (double value);

Parametreler

value
Double

Dönüştürülecek çift duyarlıklı kayan nokta sayısı.

Döndürülenler

valueeşdeğer bir ondalık sayı.

Özel durumlar

value Decimal.MaxValue büyüktür veya Decimal.MinValuedeğerinden küçüktür.

Örnekler

Aşağıdaki örnek, bir Double değerini Decimal bir değere dönüştürür.

C#
public void ConvertDoubleDecimal(decimal decimalVal){
    
    double doubleVal;
    
    // Decimal to double conversion cannot overflow.
 doubleVal = System.Convert.ToDouble(decimalVal);
    System.Console.WriteLine("{0} as a double is: {1}",
            decimalVal, doubleVal);

    // Conversion from double to decimal can overflow.
    try
 {
       decimalVal = System.Convert.ToDecimal(doubleVal);
    System.Console.WriteLine ("{0} as a decimal is: {1}",
        doubleVal, decimalVal);
    }
    catch (System.OverflowException) {
        System.Console.WriteLine(
            "Overflow in double-to-double conversion.");
    }
}

Açıklamalar

Bu yöntem tarafından döndürülen Decimal değeri en fazla 15 anlamlı basamak içerir. value parametresi 15'ten fazla anlamlı basamak içeriyorsa, yuvarlama kullanılarak en yakına yuvarlanılır. Aşağıdaki örnekte, Convert.ToDecimal(Double) yönteminin 15 anlamlı basamağı olan bir Decimal değeri döndürmek için en yakına yuvarlama yöntemini nasıl kullandığı gösterilmektedir.

C#
Console.WriteLine(Convert.ToDecimal(123456789012345500.12D));  // Displays 123456789012346000
Console.WriteLine(Convert.ToDecimal(123456789012346500.12D));  // Displays 123456789012346000

Console.WriteLine(Convert.ToDecimal(10030.12345678905D));      // Displays 10030.123456789
Console.WriteLine(Convert.ToDecimal(10030.12345678915D));      // Displays 10030.1234567892

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(Decimal)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen ondalık sayıyı verir; gerçek dönüştürme gerçekleştirilmemesi.

C#
public static decimal ToDecimal (decimal value);

Parametreler

value
Decimal

Ondalık sayı.

Döndürülenler

value değiştirilmeden döndürülür.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(DateTime)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Bu yöntemin çağrılması her zaman InvalidCastExceptionoluşturur.

C#
public static decimal ToDecimal (DateTime value);

Parametreler

value
DateTime

Dönüştürülecek tarih ve saat değeri.

Döndürülenler

Bu dönüştürme desteklenmez. Değer döndürülmedi.

Özel durumlar

Bu dönüştürme desteklenmez.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

ToDecimal(Char)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Bu yöntemin çağrılması her zaman InvalidCastExceptionoluşturur.

C#
public static decimal ToDecimal (char value);

Parametreler

value
Char

Dönüştürülecek Unicode karakteri.

Döndürülenler

Bu dönüştürme desteklenmez. Değer döndürülmedi.

Özel durumlar

Bu dönüştürme desteklenmez.

Örnekler

Aşağıdaki örnek, bir Char değerini Decimaldönüştürmeyi dener ve hata durumunda InvalidCastException oluşturur.

C#
public void ConvertCharDecimal(char charVal) {
    Decimal decimalVal = 0;
    
    // Char to decimal conversion is not supported and will always
    // throw an InvalidCastException.
    try {
        decimalVal = System.Convert.ToDecimal(charVal);
    }
    catch (System.InvalidCastException) {
        System.Console.WriteLine(
            "Char-to-Decimal conversion is not supported " +
            "by the .NET Framework.");
    }

    //Decimal to char conversion is also not supported.
    try {
        charVal = System.Convert.ToChar(decimalVal);
    }
    catch (System.InvalidCastException) {
        System.Console.WriteLine(
            "Decimal-to-Char conversion is not supported " +
            "by the .NET Framework.");
    }
}

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

ToDecimal(Byte)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen 8 bit işaretsiz tamsayı değerini eşdeğer ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (byte value);

Parametreler

value
Byte

Dönüştürülecek 8 bit işaretsiz tamsayı.

Döndürülenler

valueeşdeğer ondalık sayıdır.

Örnekler

Aşağıdaki örnek, bir Byte değerini Decimal bir değere dönüştürür.

C#
public void ConvertByteDecimal(byte byteVal) {
    decimal decimalVal;

    // Byte to decimal conversion will not overflow.
    decimalVal = System.Convert.ToDecimal(byteVal);
    System.Console.WriteLine("The byte as a decimal is {0}.",
        decimalVal);

    // Decimal to byte conversion can overflow.
    try {
        byteVal = System.Convert.ToByte(decimalVal);
        System.Console.WriteLine("The Decimal as a byte is {0}.",
            byteVal);
    }
    catch (System.OverflowException) {
        System.Console.WriteLine(
            "The decimal value is too large for a byte.");
    }
}

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToDecimal(Boolean)

Kaynak:
Convert.cs
Kaynak:
Convert.cs
Kaynak:
Convert.cs

Belirtilen Boole değerini eşdeğer ondalık sayıya dönüştürür.

C#
public static decimal ToDecimal (bool value);

Parametreler

value
Boolean

Dönüştürülecek Boole değeri.

Döndürülenler

value trueise 1 sayısı; aksi takdirde, 0.

Örnekler

Aşağıdaki örnekte BooleanDecimal değerlere dönüştürülmesi gösterilmektedir.

C#
bool[] flags = { true, false };
decimal result;

foreach (bool flag in flags)
{
   result = Convert.ToDecimal(flag);
   Console.WriteLine("Converted {0} to {1}.", flag, result);
}
// The example displays the following output:
//       Converted True to 1.
//       Converted False to 0.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0