Decimal.ToUInt32(Decimal) Метод
Определение
Важно!
Этот API несовместим с CLS.
- Альтернативный вариант, совместимый с CLS
- System.Decimal.ToInt64(Decimal)
public:
static System::UInt32 ToUInt32(System::Decimal d);
[System.CLSCompliant(false)]
public static uint ToUInt32 (decimal d);
[<System.CLSCompliant(false)>]
static member ToUInt32 : decimal -> uint32
Public Shared Function ToUInt32 (d As Decimal) As UInteger
Параметры
- d
- Decimal
Десятичное число для преобразования.The decimal number to convert.
Возвращаемое значение
32-разрядное целое число без знака, эквивалентное значению d
.A 32-bit unsigned integer equivalent to the value of d
.
- Атрибуты
Исключения
Примеры
В следующем примере метод используется ToUInt32 для преобразования десятичных чисел в UInt32 значения.The following example uses the ToUInt32 method to convert decimal numbers to UInt32 values.
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
Module Example
Public Sub Main()
Dim values() As Decimal = { 123d, New Decimal(123000, 0, 0, false, 3),
123.999d, 4294967295.999d, 4294967296d,
4294967296d, 2147483647.999d, 2147483648d,
-0.999d, -1d, -2147483648.999d, -2147483649d }
For Each value In values
Try
Dim number As UInteger = Decimal.ToUInt32(value)
Console.WriteLine("{0} --> {1}", value, number)
Catch e As OverflowException
Console.WriteLine("{0}: {1}", e.GetType().Name, value)
End Try
Next
End Sub
End Module
' 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
Комментарии
Возвращаемое значение является неотъемлемой частью десятичного значения; дробные цифры усекаются.The return value is the integral part of the decimal value; fractional digits are truncated.
Можно также преобразовать Decimal значение в 32-разрядное целое число без знака с помощью Explicit оператора присваивания.You can also convert a Decimal value to an 32-bit unsigned integer by using the Explicit assignment operator. Поскольку оператор выполняет понижающие преобразования, необходимо использовать оператор приведения в C# или функцию преобразования в Visual Basic.Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.