Пользовательское округление десятичного типа в C #

Ребята, Пишу способ округления. Входные данные являются десятичными (гарантировано четыре десятичных знака). Правило округления состоит в том, что 0,005 или меньше игнорируется, то есть смотрите на третий десятичный знак - если он <= 5, округлять в меньшую сторону, иначе округлять в большую сторону. Некоторые варианты использования: 82.3657 -> 82.36, 82.3667 -> 82.37, 82.5967 -> 82.60, 82.9958 -> 82.99, 82.9968 -> 83.00 Есть хорошие идеи? Я решил это следующим образом.

private decimal CustomRound(decimal x)
{
   decimal rX = Math.Truncate(x * 100) / 100;
   decimal x3DecPlaces = Math.Truncate(x * 1000) / 1000;
   decimal t = (x3DecPlaces * 1000) % 10;
   if (t >= 6)
      rX = rX + 0.01m;
   return rX;
}
5
задан Bobby 27 January 2011 в 10:19
поделиться