Udostępnij za pośrednictwem


Decimal.ToOACurrency(Decimal) Metoda

Definicja

Konwertuje określoną wartość na równoważną wartość waluty automatyzacji OLE, która jest zawarta w Decimal 64-bitowej liczbach całkowitych ze podpisem.

public:
 static long ToOACurrency(System::Decimal value);
public static long ToOACurrency (decimal value);
static member ToOACurrency : decimal -> int64
Public Shared Function ToOACurrency (value As Decimal) As Long

Parametry

value
Decimal

Liczba dziesiętna, która ma zostać przekształcona.

Zwraca

Int64

64-bitowa liczba całkowita ze podpisem, która zawiera odpowiednik automatyzacji OLE value .

Przykłady

W poniższym przykładzie kodu użyto metody , aby przekonwertować liczby na równoważne ToOACurrency Decimal wartości waluty automatyzacji OLE, które są zawarte w Int64 polach.

// Example of the Decimal::ToOACurrency method. 
using namespace System;
#define dataFmt "{0,31}{1,27}"

// Get the exception type name; remove the namespace prefix.
String^ GetExceptionType( Exception^ ex )
{
   String^ exceptionType = ex->GetType()->ToString();
   return exceptionType->Substring( exceptionType->LastIndexOf( '.' ) + 1 );
}


// Display the Decimal::ToOACurrency parameter and the result 
// or exception.
void ShowDecimalToOACurrency( Decimal Argument )
{
   
   // Catch the exception if ToOACurrency( ) throws one.
   try
   {
      __int64 oaCurrency = Decimal::ToOACurrency( Argument );
      Console::WriteLine( dataFmt, Argument, oaCurrency );
   }
   catch ( Exception^ ex ) 
   {
      Console::WriteLine( dataFmt, Argument, GetExceptionType( ex ) );
   }

}

int main()
{
   Console::WriteLine( "This example of the "
   "Decimal::ToOACurrency( ) method generates \nthe "
   "following output. It displays the argument as a "
   "Decimal \nand the OLE Automation Currency value "
   "as an __int64.\n" );
   Console::WriteLine( dataFmt, "Argument", "OA Currency or Exception" );
   Console::WriteLine( dataFmt, "--------", "------------------------" );
   
   // Convert Decimal values to OLE Automation Currency values.
   ShowDecimalToOACurrency( Decimal(0) );
   ShowDecimalToOACurrency( Decimal(1) );
   ShowDecimalToOACurrency( Decimal::Parse( "1.0000000000000000000000000000" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "100000000000000" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "100000000000000.00000000000000" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "10000000000000000000000000000" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "0.000000000123456789" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "0.123456789" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "123456789" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "123456789000000000" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "4294967295" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "18446744073709551615" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "-79.228162514264337593543950335" ) );
   ShowDecimalToOACurrency( Decimal::Parse( "-79228162514264.337593543950335" ) );
}

/*
This example of the Decimal::ToOACurrency( ) method generates
the following output. It displays the argument as a Decimal
and the OLE Automation Currency value as an __int64.

                       Argument   OA Currency or Exception
                       --------   ------------------------
                              0                          0
                              1                      10000
 1.0000000000000000000000000000                      10000
                100000000000000        1000000000000000000
 100000000000000.00000000000000        1000000000000000000
  10000000000000000000000000000          OverflowException
           0.000000000123456789                          0
                    0.123456789                       1235
                      123456789              1234567890000
             123456789000000000          OverflowException
                     4294967295             42949672950000
           18446744073709551615          OverflowException
-79.228162514264337593543950335                    -792282
-79228162514264.337593543950335        -792281625142643376
*/
// Example of the decimal.ToOACurrency method.
using System;

class DecimalToOACurrencyDemo
{
    const string dataFmt = "{0,31}{1,27}";

    // 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 );
    }

    // Display the decimal.ToOACurrency parameter and the result
    // or exception.
    public static void ShowDecimalToOACurrency( decimal Argument )
    {
        // Catch the exception if ToOACurrency( ) throws one.
        try
        {
            long oaCurrency = decimal.ToOACurrency( Argument );
            Console.WriteLine( dataFmt, Argument, oaCurrency );
        }
        catch( Exception ex )
        {
            Console.WriteLine( dataFmt, Argument,
                GetExceptionType( ex ) );
        }
    }

    public static void Main( )
    {
        Console.WriteLine( "This example of the " +
            "decimal.ToOACurrency( ) method generates \nthe " +
            "following output. It displays the argument as a " +
            "decimal \nand the OLE Automation Currency value " +
            "as a long.\n" );
        Console.WriteLine( dataFmt, "Argument",
            "OA Currency or Exception" );
        Console.WriteLine( dataFmt, "--------",
            "------------------------" );

        // Convert decimal values to OLE Automation Currency values.
        ShowDecimalToOACurrency( 0M );
        ShowDecimalToOACurrency( 1M );
        ShowDecimalToOACurrency( 1.0000000000000000000000000000M );
        ShowDecimalToOACurrency( 100000000000000M );
        ShowDecimalToOACurrency( 100000000000000.00000000000000M );
        ShowDecimalToOACurrency( 10000000000000000000000000000M );
        ShowDecimalToOACurrency( 0.000000000123456789M );
        ShowDecimalToOACurrency( 0.123456789M );
        ShowDecimalToOACurrency( 123456789M );
        ShowDecimalToOACurrency( 123456789000000000M );
        ShowDecimalToOACurrency( 4294967295M );
        ShowDecimalToOACurrency( 18446744073709551615M );
        ShowDecimalToOACurrency( -79.228162514264337593543950335M );
        ShowDecimalToOACurrency( -79228162514264.337593543950335M );
    }
}

/*
This example of the decimal.ToOACurrency( ) method generates
the following output. It displays the argument as a decimal
and the OLE Automation Currency value as a long.

                       Argument   OA Currency or Exception
                       --------   ------------------------
                              0                          0
                              1                      10000
 1.0000000000000000000000000000                      10000
                100000000000000        1000000000000000000
 100000000000000.00000000000000        1000000000000000000
  10000000000000000000000000000          OverflowException
           0.000000000123456789                          0
                    0.123456789                       1235
                      123456789              1234567890000
             123456789000000000          OverflowException
                     4294967295             42949672950000
           18446744073709551615          OverflowException
-79.228162514264337593543950335                    -792282
-79228162514264.337593543950335        -792281625142643376
*/
' Example of the Decimal.ToOACurrency method. 
Module DecimalToOACurrencyDemo
    
    Const dataFmt As String = "{0,31}{1,27}"

    ' Get the exception type name; remove the namespace prefix.
    Function GetExceptionType( ex As Exception ) As String

        Dim exceptionType   As String = ex.GetType( ).ToString( )
        Return exceptionType.Substring( _
            exceptionType.LastIndexOf( "."c ) + 1 )
    End Function

    ' Display the Decimal.ToOACurrency parameter and the result 
    ' or exception.
    Sub ShowDecimalToOACurrency( Argument As Decimal )

        ' Catch the exception if ToOACurrency( ) throws one.
        Try
            Dim oaCurrency As Long = Decimal.ToOACurrency( Argument )
            Console.WriteLine( dataFmt, Argument, _
                oaCurrency )

        Catch ex As Exception
            Console.WriteLine( dataFmt, Argument, _
                GetExceptionType( ex ) )
        End Try
    End Sub

    Sub Main( )
        Console.WriteLine( "This example of the " & _
            "Decimal.ToOACurrency( ) method generates " & vbCrLf & _
            "the following output. It displays the argument as " & _
            "a Decimal " & vbCrLf & "and the OLE Automation " & _
            "Currency value as a Long." & vbCrLf )
        Console.WriteLine( dataFmt, "Argument", _
            "OA Currency or Exception" )
        Console.WriteLine( dataFmt, "--------", _
            "------------------------" )

        ' Convert Decimal values to OLE Automation Currency values.
        ShowDecimalToOACurrency( 0D )
        ShowDecimalToOACurrency( 1D )
        ShowDecimalToOACurrency( _
            Decimal.Parse( "1.0000000000000000000000000000" ) )
        ShowDecimalToOACurrency( 100000000000000D )
        ShowDecimalToOACurrency( _
            Decimal.Parse( "100000000000000.00000000000000" ) )
        ShowDecimalToOACurrency( 10000000000000000000000000000D )
        ShowDecimalToOACurrency( 0.000000000123456789D ) 
        ShowDecimalToOACurrency( 0.123456789D ) 
        ShowDecimalToOACurrency( 123456789D ) 
        ShowDecimalToOACurrency( 123456789000000000D ) 
        ShowDecimalToOACurrency( 4294967295D ) 
        ShowDecimalToOACurrency( 18446744073709551615D ) 
        ShowDecimalToOACurrency( -79.228162514264337593543950335D ) 
        ShowDecimalToOACurrency( -79228162514264.337593543950335D ) 
    End Sub
End Module 

' This example of the Decimal.ToOACurrency( ) method generates
' the following output. It displays the argument as a Decimal
' and the OLE Automation Currency value as a Long.
' 
'                        Argument   OA Currency or Exception
'                        --------   ------------------------
'                               0                          0
'                               1                      10000
'  1.0000000000000000000000000000                      10000
'                 100000000000000        1000000000000000000
'  100000000000000.00000000000000        1000000000000000000
'   10000000000000000000000000000          OverflowException
'            0.000000000123456789                          0
'                     0.123456789                       1235
'                       123456789              1234567890000
'              123456789000000000          OverflowException
'                      4294967295             42949672950000
'            18446744073709551615          OverflowException
' -79.228162514264337593543950335                    -792282
' -79228162514264.337593543950335        -792281625142643376

Dotyczy

Zobacz też