Decimal.ToUInt64(Decimal) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
중요
이 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
변환할 10진수입니다.
반환
d
의 값에 해당하는 64비트 부호 없는 정수입니다.
- 특성
예외
d
가 음수이거나 UInt64.MaxValue보다 큰 경우
예제
다음 예제에서는 메서드를 ToUInt64 사용하여 10진수를 값으로 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
설명
반환 값은 10진수 값의 정수 부분입니다. 소수 자릿수는 잘립니다.
대입 연산자를 Decimal 사용하여 Explicit 값을 부호 없는 64비트 정수로 변환할 수도 있습니다. 연산자는 축소 변환을 수행하므로 C#의 캐스팅 연산자 또는 Visual Basic의 변환 함수를 사용해야 합니다.
적용 대상
추가 정보
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET