Decimal.ToUInt64(Decimal) Метод
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Важно!
Этот API несовместим с CLS.
Преобразует значение заданного объекта типа Decimal в эквивалентное 64-разрядное целое число без знака.
public:
static System::UInt64 ToUInt64(System::Decimal d);
[System.CLSCompliant(false)]
public static ulong ToUInt64 (decimal d);
[<System.CLSCompliant(false)>]
static member ToUInt64 : decimal -> uint64
Public Shared Function ToUInt64 (d As Decimal) As ULong
- d
- Decimal
Десятичное число для преобразования.
64-разрядное целое число без знака, эквивалентное значению d
.
- Атрибуты
d
имеет отрицательное значение или больше UInt64.MaxValue.
В следующем примере метод используется ToUInt64 для преобразования десятичных чисел в UInt64 значения.
using System;
class Example
{
public static void Main( )
{
decimal[] values = { 123m, new Decimal(123000, 0, 0, false, 3),
123.999m, 18446744073709551615.999m,
18446744073709551616m, 9223372036854775807.999m,
9223372036854775808m, -0.999m, -1m,
-9223372036854775808.999m,
-9223372036854775809m };
foreach (var value in values) {
try {
ulong number = Decimal.ToUInt64(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
// 18446744073709551615.999 --> 18446744073709551615
// OverflowException: 18446744073709551616
// 9223372036854775807.999 --> 9223372036854775807
// 9223372036854775808 --> 9223372036854775808
// -0.999 --> 0
// OverflowException: -1
// OverflowException: -9223372036854775808.999
// OverflowException: -9223372036854775809
open System
let values =
[ 123m; Decimal(123000, 0, 0, false, 3uy)
123.999m; 18446744073709551615.999m
18446744073709551616m; 9223372036854775807.999m
9223372036854775808m; -0.999m; -1m
-9223372036854775808.999m
-9223372036854775809m ]
for value in values do
try
let number = Decimal.ToUInt64 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
// 18446744073709551615.999 --> 18446744073709551615
// OverflowException: 18446744073709551616
// 9223372036854775807.999 --> 9223372036854775807
// 9223372036854775808 --> 9223372036854775808
// -0.999 --> 0
// OverflowException: -1
// OverflowException: -9223372036854775808.999
// OverflowException: -9223372036854775809
Module Example
Public Sub Main()
Dim values() As Decimal = { 123d, New Decimal(123000, 0, 0, false, 3),
123.999d, 18446744073709551615.999d,
18446744073709551616d, 9223372036854775807.999d,
9223372036854775808d, -0.999d, -1d,
-9223372036854775808.999d,
-9223372036854775809d }
For Each value In values
Try
Dim number As ULong = Decimal.ToUInt64(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
' 18446744073709551615.999 --> 18446744073709551615
' OverflowException: 18446744073709551616
' 9223372036854775807.999 --> 9223372036854775807
' 9223372036854775808 --> 9223372036854775808
' -0.999 --> 0
' OverflowException: -1
' OverflowException: -9223372036854775808.999
' OverflowException: -9223372036854775809
Возвращаемое значение является неотъемлемой частью десятичного значения; Дробные цифры усекаются.
Можно также преобразовать Decimal значение в 64-разрядное целое число без знака с помощью Explicit оператора присваивания. Так как оператор выполняет сужающее преобразование, необходимо использовать оператор приведения в 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 |
.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 |
.NET кері байланысы
.NET — бастапқы коды ашық жоба. Пікір қалдыру үшін сілтемені таңдаңыз: