Visual C++ .NET/Data Type/Decimal

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Break decimal up into 4 parts

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; void main() {

   Decimal a = (Decimal)123456789012345000000.00000000;
   Console::WriteLine( a );

   array<int>^ d = Decimal::GetBits(a);
   Console::WriteLine( d[0] );              
   Console::WriteLine( d[1] );              
   Console::WriteLine( d[2] );              
   Console::WriteLine( d[3].ToString("X") );

}

 </source>


Cast to decimal

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; void main() {

   Decimal x = (Decimal)0.1234567890123456789012345678; // will get truncated 
   Decimal y = (Decimal)0.0000000000000000789012345678; // works fine
   Console::WriteLine( x );
   Console::WriteLine( y );

}

 </source>


Decimal calculation

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; void main() {

   Decimal a = (Decimal)123456789012345000000.00000000;
   Decimal b = (Decimal)678901.23456780;
   Decimal c = -(a + b);
   Console::WriteLine( c );

}

 </source>


Decimal constructor

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; void main() {

   Decimal z(0xeb1f0ad2, 0xab54a98c, 0, false, 0); // = 12345678901234567890
   Console::WriteLine( z );

}

 </source>


Decimal literal assigned

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; void main() {

   int     x = 456789;             // 
   Console::WriteLine( x );               

}

 </source>


Using Decimal constructor

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; void main() {

   Decimal e(0, 1, 2,                          // digits
             ((3 & 0x80000000) == 0x80000000), // sign
             ((3 >> 16) & 0xff) );             // decimal location
   Console::WriteLine( e );                 

}

 </source>