Decimal.ToUInt32(Decimal) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Importante
Questa API non è conforme a CLS.
- Alternativa conforme a CLS
- System.Decimal.ToInt64(Decimal)
Converte il valore dell'oggetto Decimal specificato nell'intero senza segno a 32 bit equivalente.
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
Parametri
- d
- Decimal
Numero decimale da convertire.
Restituisce
Intero senza segno a 32 bit equivalente al valore di d
.
- Attributi
Eccezioni
d
è negativo o maggiore di UInt32.MaxValue.
Esempio
Nell'esempio seguente viene usato il ToUInt32 metodo per convertire i numeri decimali in UInt32 valori.
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
open System
let values =
[ 123m; Decimal(123000, 0, 0, false, 3uy)
123.999m; 4294967295.999m; 4294967296m
4294967296m; 2147483647.999m; 2147483648m
-0.999m; -1m; -2147483648.999m; -2147483649m ]
for value in values do
try
let number = Decimal.ToUInt32 value
printfn $"{value} --> {number}"
with :? OverflowException as e ->
printfn $"{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
Commenti
Il valore restituito è la parte integrante del valore decimale; le cifre frazionarie vengono troncate.
È anche possibile convertire un valore in un Decimal intero senza segno a 32 bit usando l'operatore Explicit di assegnazione. Poiché l'operatore esegue una conversione ristretta, è necessario usare un operatore di cast in C# o una funzione di conversione in Visual Basic.