Blankman
Blankman

Reputation: 266950

Have decimal amount, want to trim to 2 decimal places if present

Have decimal amount, want to trim to 2 decimal places if present

Upvotes: 11

Views: 34621

Answers (5)

Sadjad Khazaie
Sadjad Khazaie

Reputation: 2232

I use this: Math.Round(MyDecimalValue,2);

Upvotes: 1

gap
gap

Reputation: 2796

If its just for display purposes, you can use:

Console.Out.WriteLine("Number is: {0:F2}", myDecimalNumber);

Upvotes: 1

Chris Shain
Chris Shain

Reputation: 51319

This should work (EDIT: Fixed to remove rounding):

((Int32)(value * Math.Pow(10, decimalPlaces))) / (Math.Pow(10D, decimalPlaces));

Upvotes: 0

Joey
Joey

Reputation: 354416

decimal.Truncate(myDecimal * 100) / 100

This would cut away everything following the first two decimal places. For rounding see Jon's answer.

Upvotes: 12

Jon Skeet
Jon Skeet

Reputation: 1500055

Have you tried using value = Decimal.Round(value, 2)?

For example:

using System;

class Test
{    
    static void Main()
    {
        decimal d = 1234.5678m;
        Console.WriteLine("Before: {0}", d); // Prints 1234.5678
        d = decimal.Round(d, 2);
        Console.WriteLine("After: {0}", d); // Prints 1234.57
    }
}

Note that this is rounding rather than just trimming (so here it's rounded up)... what exactly do you need? Chances that the Decimal struct supports whatever you need to do. Consult MSDN for more options.

Upvotes: 24

Related Questions