閱讀英文

共用方式為


Decimal.ToUInt32(Decimal) 方法

定義

重要

此 API 不符合 CLS 規範。

符合 CLS 規範替代方案
System.Decimal.ToInt64(Decimal)

將指定的 Decimal 值轉換為對等的 32 位元不帶正負號整數。

C#
[System.CLSCompliant(false)]
public static uint ToUInt32(decimal d);

參數

d
Decimal

要轉換的十進位數字。

傳回

32 位元不帶正負號的整數,等於 d 的值。

屬性

例外狀況

d 為負數或大於 UInt32.MaxValue

範例

下列範例會 ToUInt32 使用 方法,將十進位數轉換成 UInt32 值。

C#
using System;

class Example
{
   public static void Main( )
   {
      decimal[] values = { 123m, new decimal(123000, 0, 0, false, 3),
                           123.999m, 4294967295.999m, 4294967296m,
                           4294967296m, 2147483647.999m, 2147483648m,
                           -0.999m, -1m, -2147483648.999m, -2147483649m };

      foreach (var value in values) {
         try {
            uint number = Decimal.ToUInt32(value);
            Console.WriteLine("{0} --> {1}", value, number);
         }
         catch (OverflowException e)
         {
             Console.WriteLine("{0}: {1}", e.GetType().Name, value);
         }
      }
   }
}
// The example displays the following output:
//     123 --> 123
//     123.000 --> 123
//     123.999 --> 123
//     4294967295.999 --> 4294967295
//     OverflowException: 4294967296
//     OverflowException: 4294967296
//     2147483647.999 --> 2147483647
//     2147483648 --> 2147483648
//     -0.999 --> 0
//     OverflowException: -1
//     OverflowException: -2147483648.999
//     OverflowException: -2147483649

備註

傳回值是十進位值的整數部分;小數位數會被截斷。

您也可以使用 Explicit 指派運算子,將值轉換成 Decimal 32 位不帶正負號的整數。 因為運算子會執行縮小轉換,所以您必須在 C# 中使用轉型運算子,或在 Visual Basic 中使用轉換函式。

適用於

產品 版本
.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, 10
.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

另請參閱