Decimal から UInt64 への変換
Decimal を 64 ビット符号なし整数に変換します。
この型変換は、CLS と互換性がありません。CLS との互換性に関する詳細については 「共通言語仕様の概要」 を参照してください。
<CLSCompliant(False)>
returnValue = Decimal.op_Explicit(value)
[C#]
[CLSCompliant(false)]
public static explicit operator ulong(decimalvalue);
[C++]
[CLSCompliant(false)]
public: static unsigned __int64 op_Explicit();
[JScript]
returnValue = UInt64(value);
[Visual Basic] Visual Basic では、この型で定義されている型変換を使用することができます。ただし、独自に定義することはできません。Decimal から UInt64 への変換の代わりに、ToUInt64 メソッドを使用できます。
[JScript] JScript では、この型で定義されている型変換を使用することができます。ただし、独自に定義することはできません。
引数 [Visual Basic, JScript]
- value
変換する Decimal 。
パラメータ [C#]
- value
変換する Decimal 。
戻り値
変換された Decimal を表す 64 ビット符号なし整数。
例外
例外の種類 | 条件 |
---|---|
OverflowException | value が負の値であるか、 UInt64.MaxValue よりも大きい値です。 |
使用例
[C#, C++] 明示的な Decimal to UInt64 変換を使用して Decimal の数値を UInt64 の値に変換するコード例を次に示します。
// Example of the explicit conversions from decimal to long and
// decimal to ulong.
using System;
class DecimalToU_Int64Demo
{
const string formatter = "{0,25}{1,22}{2,22}";
// Get the exception type name; remove the namespace prefix.
public static string GetExceptionType( Exception ex )
{
string exceptionType = ex.GetType( ).ToString( );
return exceptionType.Substring(
exceptionType.LastIndexOf( '.' ) + 1 );
}
// Convert the decimal argument; catch exceptions that are thrown.
public static void DecimalToU_Int64( decimal argument )
{
object Int64Value;
object UInt64Value;
// Convert the argument to a long value.
try
{
Int64Value = (long)argument;
}
catch( Exception ex )
{
Int64Value = GetExceptionType( ex );
}
// Convert the argument to a ulong value.
try
{
UInt64Value = (ulong)argument;
}
catch( Exception ex )
{
UInt64Value = GetExceptionType( ex );
}
Console.WriteLine( formatter, argument,
Int64Value, UInt64Value );
}
public static void Main( )
{
Console.WriteLine(
"This example of the explicit conversions from decimal " +
"to long \nand decimal to ulong generates the following " +
"output. It displays \nseveral converted decimal " +
"values.\n" );
Console.WriteLine( formatter, "decimal argument",
"long/exception", "ulong/exception" );
Console.WriteLine( formatter, "----------------",
"--------------", "---------------" );
// Convert decimal values and display the results.
DecimalToU_Int64( 123M );
DecimalToU_Int64( new decimal( 123000, 0, 0, false, 3 ) );
DecimalToU_Int64( 123.999M );
DecimalToU_Int64( 18446744073709551615.999M );
DecimalToU_Int64( 18446744073709551616M );
DecimalToU_Int64( 9223372036854775807.999M );
DecimalToU_Int64( 9223372036854775808M );
DecimalToU_Int64( - 0.999M );
DecimalToU_Int64( - 1M );
DecimalToU_Int64( - 9223372036854775808.999M );
DecimalToU_Int64( - 9223372036854775809M );
}
}
/*
This example of the explicit conversions from decimal to long
and decimal to ulong generates the following output. It displays
several converted decimal values.
decimal argument long/exception ulong/exception
---------------- -------------- ---------------
123 123 123
123.000 123 123
123.999 123 123
18446744073709551615.999 OverflowException 18446744073709551615
18446744073709551616 OverflowException OverflowException
9223372036854775807.999 9223372036854775807 9223372036854775807
9223372036854775808 OverflowException 9223372036854775808
-0.999 0 0
-1 -1 OverflowException
-9223372036854775808.999 -9223372036854775808 OverflowException
-9223372036854775809 OverflowException OverflowException
*/
[C++]
// Example of the explicit conversions from Decimal to __int64 and
// Decimal to unsigned __int64.
#using <mscorlib.dll>
using namespace System;
const __wchar_t* formatter = L"{0,25}{1,22}{2,22}";
// Get the exception type name; remove the namespace prefix.
String* GetExceptionType( Exception* ex )
{
String* exceptionType = ex->GetType( )->ToString( );
return exceptionType->Substring(
exceptionType->LastIndexOf( '.' ) + 1 );
}
// Convert the Decimal argument; catch exceptions that are thrown.
void DecimalToU_Int64( Decimal argument )
{
Object* Int64Value;
Object* UInt64Value;
// Convert the argument to an __int64 value.
try
{
Int64Value = __box( (__int64)argument );
}
catch( Exception* ex )
{
Int64Value = GetExceptionType( ex );
}
// Convert the argument to an unsigned __int64 value.
try
{
UInt64Value = __box( (unsigned __int64)argument );
}
catch( Exception* ex )
{
UInt64Value = GetExceptionType( ex );
}
Console::WriteLine( formatter, __box( argument ),
Int64Value, UInt64Value );
}
void main( )
{
Console::WriteLine(
S"This example of the explicit conversions from Decimal to "
S"__int64 \nand Decimal to unsigned __int64 generates the "
S"following output. \nIt displays several converted Decimal "
S"values.\n" );
Console::WriteLine( formatter, S"Decimal argument",
S"__int64", S"unsigned __int64" );
Console::WriteLine( formatter, S"----------------",
S"-------", S"----------------" );
// Convert Decimal values and display the results.
DecimalToU_Int64( Decimal::Parse( "123" ) );
DecimalToU_Int64( Decimal( 123000, 0, 0, false, 3 ) );
DecimalToU_Int64( Decimal::Parse( "123.999" ) );
DecimalToU_Int64( Decimal::Parse( "18446744073709551615.999" ) );
DecimalToU_Int64( Decimal::Parse( "18446744073709551616" ) );
DecimalToU_Int64( Decimal::Parse( "9223372036854775807.999" ) );
DecimalToU_Int64( Decimal::Parse( "9223372036854775808" ) );
DecimalToU_Int64( Decimal::Parse( "-0.999" ) );
DecimalToU_Int64( Decimal::Parse( "-1" ) );
DecimalToU_Int64( Decimal::Parse( "-9223372036854775808.999" ) );
DecimalToU_Int64( Decimal::Parse( "-9223372036854775809" ) );
}
/*
This example of the explicit conversions from Decimal to __int64
and Decimal to unsigned __int64 generates the following output.
It displays several converted Decimal values.
Decimal argument __int64 unsigned __int64
---------------- ------- ----------------
123 123 123
123.000 123 123
123.999 123 123
18446744073709551615.999 OverflowException 18446744073709551615
18446744073709551616 OverflowException OverflowException
9223372036854775807.999 9223372036854775807 9223372036854775807
9223372036854775808 OverflowException 9223372036854775808
-0.999 0 0
-1 -1 OverflowException
-9223372036854775808.999 -9223372036854775808 OverflowException
-9223372036854775809 OverflowException OverflowException
*/
[Visual Basic, JScript] Visual Basic および JScript のサンプルはありません。C# および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard