Иметь десятичную сумму, нужно обрезать до 2 десятичных знаков, если они есть - PullRequest
8 голосов
/ 14 января 2011

Имеет десятичную сумму, хочет обрезать до 2 десятичных знаков, если присутствует

Ответы [ 4 ]

21 голосов
/ 14 января 2011

Вы пытались использовать value = Decimal.Round(value, 2)?

Например:

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
    }
}

Обратите внимание, что это округление, а не просто усечение (поэтому здесь оно округляется) ... что именнотебе нужно?Скорее всего, структура Decimal поддерживает все, что вам нужно сделать.Проконсультируйтесь с MSDN для получения дополнительной информации.

10 голосов
/ 14 января 2011
decimal.Truncate(myDecimal * 100) / 100

Это будет вырезать все после первых двух десятичных знаков.Для округления см. Ответ Джона.

1 голос
/ 15 января 2011

Если это только для целей отображения, вы можете использовать:

Console.Out.WriteLine("Number is: {0:F2}", myDecimalNumber);
0 голосов
/ 14 января 2011

Это должно работать (EDIT: исправлено, чтобы удалить округление):

((Int32)(value * Math.Pow(10, decimalPlaces))) / (Math.Pow(10D, decimalPlaces));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...