се опитва да създаде метод за разширение за преобразуване от низ в десетичен

Опитвам се да измисля глобален начин за конвертиране на низ в X брой десетични знаци и нямам късмет. Имам нужда от това, за да върна десетичен знак с X брой десетични знаци.

Ето какво имам досега, но не мога да разбера как да го накарам да знае на какво да разделя лесно:

public static decimal ToXDecimalPlaces(this object value, int numberofdecimalplaces, decimal defaultValue = 0)
{
  double retval;
  if (double.TryParse(value.ToString(), out retval))
  {
    return (decimal)(retval / 10);
  }
  return defaultValue;
}

Така че, ако го изпратя:

value = "12345"
value.ToXDecimalPlaces(2) 

Бих искал да се върна:

123.45

и т.н.

Разделянето на retval трябва да бъде различно в зависимост от броя на десетичните знаци.

Някакви предположения? Бих предпочел да не се налага да създавам шепа методи за разширение или това е, което трябва да направя?

Трябва ли просто да създам:

To1DecimalPlaces
To2DecimalPlaces
To3DecimalPlaces
etc

За всеки от които имам нужда и да продължа напред?


person ErocM    schedule 25.04.2014    source източник
comment
Трябва да използвате this string value, тъй като искате разширение за низови стойности.   -  person rareyesdev    schedule 25.04.2014


Отговори (1)


Какво ще кажете да използвате Math.Pow?

Нещо като

return (decimal)(retval / Math.Pow(10, numberofdecimalplaces));
person Adriaan Stander    schedule 25.04.2014