Как округлить десятичную дробь для вывода? - PullRequest
1 голос
/ 30 марта 2009

Используя C #, я хочу отформатировать десятичное число, чтобы отобразить только два десятичных знака, а затем я возьму это десятичное число и вычту его до другого десятичного знака. Я хотел бы иметь возможность сделать это без необходимости сначала преобразовывать его в строку для форматирования, а затем преобразовать обратно в десятичную. Извините, я забываю указать это, но я не хочу округлять, я просто хочу отрубить последний десятичный знак. Есть ли способ сделать это?

Ответы [ 5 ]

8 голосов
/ 30 марта 2009

Если вы не хотите округлять десятичную дробь, вы можете использовать Decimal.Truncate. К сожалению, он может только усечь ВСЕ десятичные дроби. Чтобы решить эту проблему, вы можете умножить на 100, укоротить и разделить на 100, например:

decimal d = ...;
d = Decimal.Truncate(d * 100) / 100;

И вы можете создать метод расширения, если вы делаете это достаточно раз

public static class DecimalExtensions
{
  public static decimal TruncateDecimal(this decimal @this, int places)
  {
    int multipler = (int)Math.Pow(10, places);
    return Decimal.Truncate(@this * multipler) / multipler;
  }
}
4 голосов
/ 30 марта 2009

Вы можете использовать: Math.Round(number,2); для округления числа до двух десятичных знаков.

См. эту конкретную перегрузку Math.Round для примеров.

3 голосов
/ 30 марта 2009
2 голосов
/ 30 марта 2009

Вы не хотите отформатировать это тогда, но округлите это. Попробуйте функцию Math.Round.

0 голосов
/ 30 марта 2009

Взгляните на Math.Round

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...