Exaples to extract decimal part or integer part from a Decimal number in C# or VB.NET
VB.NET
[sourcecode lang=”VBNET”]
Dim myDecimal As Decimal = 3.7 ‘myDecimal = 3.7
Dim integer_part As Integer
integer_part = Decimal.Truncate(myDecimal) ‘integer_part = 3
integer_part = Decimal.ToInt16(myDecimal) ‘integer_part = 3
integer_part = Decimal.ToInt32(myDecimal) ‘integer_part = 3
integer_part = Decimal.ToInt64(myDecimal) ‘integer_part = 3
integer_part = Decimal.Floor(myDecimal) ‘integer_part = 3
‘Following lines cause a Round (WRONG RESULT)
Dim rounded_integer_part As Integer
rounded_integer_part = myDecimal ’rounded_integer_part = 4, result different from C#
rounded_integer_part = Decimal.Ceiling(myDecimal) ’rounded_integer_part = 4
‘Obviously decimal_part is calculated as difference
Dim decimal_part As Decimal
decimal_part = myDecimal – Decimal.Truncate(integer_part) ‘decimal_part = 0.7
[/sourcecode]
C#
[sourcecode lang=”csharp”]
Decimal myDecimal = 3.7M; //myDecimal = 3.7
int integer_part;
integer_part = (int)Decimal.Truncate(myDecimal); //integer_part = 3
integer_part = (int)Decimal.ToInt16(myDecimal); //integer_part = 3
integer_part = (int)Decimal.ToInt32(myDecimal); //integer_part = 3
integer_part = (int)Decimal.ToInt64(myDecimal); //integer_part = 3
integer_part = (int)Decimal.Floor(myDecimal); //integer_part = 3
integer_part = (int)myDecimal; //integer_part = 3, result different from VB
//Following line cause a Round (WRONG RESULT)
int rounded_integer_part = (int)Decimal.Ceiling(myDecimal); //rounded_integer_part = 4
//Obviously decimal_part is calculated as difference
Decimal decimal_part;
decimal_part = myDecimal – Decimal.Truncate(integer_part); //decimal_part = 0.7
[/sourcecode]
Did my HOW TO help you? Leave a reply.
One reply on “HOW TO extract decimal part or integer part from a Decimal number in C# or VB.NET”
Very interesting article. I’ve wasted a lot of time before I’ve found this. You saved me, thanks!